我正在尝试创建一个包含表格的波斯语PDF,我想写入其中。当我的字符串很长时,它不能正确适合单元格。感觉像字符串填充单元格颠倒!...我的意思是例如,当我想写"你好我的朋友。什么了?" 在单元格中输出如下:
|什么了? |
|我的朋友|
|你好|
但当然是波斯语(英语很好)
这里我按顺序附加了代码
private LanguageProcessor al = new ArabicLigaturizer();
cell = new PdfPCell(new Phrase(al.process(persian_text), fontNormal));
cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
cell.setVerticalAlignment(Element.ALIGN_TOP);
cell.setBorderWidth(0);
table.addCell(cell);
我会感谢你的帮助
答案 0 :(得分:1)
首先:iText 5.5.5不存在(尚未)。您可能正在使用其他版本。
至于你的问题:你使用的是错误的方法。 “how to create persian content in pdf using eclipse”的答案中解释了正确的方法。
PdfPCell cell = new PdfPCell(new Phrase(arabic_text, fontNormal));
cell.setVerticalAlignment(Element.ALIGN_TOP);
cell.setBorderWidth(0);
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(cell);
您不应该直接使用ArabicLigaturizer
!在上面的代码段中,arabic_text
是带有阿拉伯字符的原始String
。请注意,您不应在源代码中使用Unicode字符。请参阅我对此问题的回答中的第二个观察结果:Can't get Czech characters while generating a PDF