iText PDF生成器不会渲染波斯语字符

时间:2014-10-22 15:19:36

标签: android pdf itext

我正在使用iTextG 5.5.3生成一个波斯语pdf文件。所以我使用了以下代码:

Document document = new Document(PageSize.A4);

PdfWriter.getInstance(document, pdfFileOutputStream);
document.open();

Paragraph p1 = new Paragraph("سلام این متن برای تست است.");
BaseFont farsiFont = BaseFont.createFont("assets/fonts/BMitra.ttf", "UTF-8", BaseFont.EMBEDDED);
Font paraFont= new Font(farsiFont);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);

PdfPTable table = new PdfPTable(1);
PdfPCell cell = new PdfPCell(p1);
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(cell);

document.add(table);
document.close();

但是波斯字符不会写在输出文件中。我还阅读了this answer

1 个答案:

答案 0 :(得分:1)

使用this answer我将代码更改为:

Paragraph p1 = new Paragraph();
BaseFont farsiFont = BaseFont.createFont("assets/fonts/BMitra.ttf", "UTF-8", BaseFont.EMBEDDED);
Font paraFont= new Font(farsiFont);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
p1.add("سلام این متن برای تست است.");

它有效。