我正在尝试创建一个包含表格的波斯语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);
我会感激你的帮助
解决方法:
首先:iText 5.5.5不存在(尚未).您可能正在使用其他版本.
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是带有阿拉伯字符的原始字符串.请注意,您不应在源代码中使用Unicode字符.在我对这个问题的回答中看到第二个观察结果:Can’t get Czech characters while generating a PDF
标签:java,pdf,itext
来源: https://codeday.me/bug/20190708/1402590.html