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时无法获取捷克语字符