iText 5.5.3 PDFPCell:长文本不适合单元格(不正确地包装文本)
我正在尝试创建一个包含表格的波斯语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不存在(尚未)。 您可能正在使用其他版本。
至于你的问题:你使用的是错误的方法。 在“ 如何使用eclipse在pdf中创建波斯语内容 ”的答案中解释了正确的方法。
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字符。 请参阅我对此问题的回答中的第二个观察结果: 生成PDF时无法获取捷克语字符