Java iText 5.5.3 PDFPCell:长文本不';无法在单元格中正确填充(不正确地包装文本)

Java iText 5.5.3 PDFPCell:长文本不';无法在单元格中正确填充(不正确地包装文本),java,pdf,itext,Java,Pdf,Itext,我正在尝试创建一个包含表格的波斯语PDF,我想在其中进行书写。当我的字符串很长时,它与单元格不匹配。感觉就像绳子把细胞倒过来一样!。。。例如,当我想写“你好,我的朋友,怎么了?” 在单元格中,输出如下所示: |怎么了| |我的朋友| |你好| 当然是波斯语(英语也可以) 顺便说一下,我在这里附上了代码 private LanguageProcessor al = new ArabicLigaturizer(); cell = new PdfPCell(new

我正在尝试创建一个包含表格的波斯语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还不存在。您可能正在使用另一个版本

至于你的问题:你使用了错误的方法。正确的方法在对“”的回答中进行了解释

您不应该直接使用Arabicligatuiser!在上面的代码片段中,
阿拉伯文
是带有阿拉伯文字符的原始
字符串。请注意,在源代码中不应使用Unicode字符。见我对这个问题的回答中的第二个观察:

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);