iText 5.5.3 PDFPCell:长文本不能正确放入单元格(不正确地包装文本)

时间:2014-12-15 14:00:44

标签: java pdf itext

我正在尝试创建一个包含表格的波斯语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);

我会感谢你的帮助

1 个答案:

答案 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