我正在使用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。
答案 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("سلام این متن برای تست است.");
它有效。