使用iText生成波斯语PDF

你好
我知道很多人之前可能会问过这个问题 . 我've read almost all of them`but it couldn' t帮我解决问题 .
我'm using iText java library to generate a Persian PDF. I'm使用以下代码:

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”包含一些波斯语字符 .

我该怎么办?我已经陷入了这个问题......请帮帮我 .

回答(1)

2 years ago

只有部分iText元素支持RTL,如PdfPCell,PdfPTable,ColumnText . 只有这些元素具有 RunDirection 属性,可以设置为 PdfWriter.RUN_DIRECTION_RTL 值 . (more info in Persian