嗨,我知道很多人之前可能会问过这个问题。我几乎阅读了所有这些内容,但它无法帮我解决问题。
我正在使用iText java库生成波斯语PDF。我正在使用以下代码:
Document document = new Document(PageSize.A4,50,50,50,50);
FileOutputStream fos = new FileOutputStream("D:\\ITextTest.pdf");
PdfWriter writer = PdfWriter.getInstance(document,fos);
document.open();
BaseFont bf = BaseFont.createFont("C:\\Windows\\Fonts\\XB YagutBd.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font a = new Font(bf,10);
Paragraph p1 = new Paragraph("سلام دوست من");
p1.setFont(a);
document.add(p1);
document.close();
但是当我执行代码时,没有任何内容写入PDF文件并且它是空白的。请注意,“XB YagutBd.ttf”是波斯语Unicode字体,“p1”包含一些波斯语字符。
我该怎么办?我已经陷入了这个问题......请帮帮我。
答案 0 :(得分:5)
只有部分iText元素支持RTL,如PdfPCell,PdfPTable,ColumnText。
只有这些元素具有RunDirection
属性,可以设置为PdfWriter.RUN_DIRECTION_RTL
值。 (more info in Persian)