Itext 显示阿拉伯语单词的空行

Itext show empty line for Arabic words

我正在使用 Itext 使用以下代码在 android 中创建 pdf 个文件:

 Document document = new Document();
                PdfWriter.getInstance(document, new FileOutputStream(root.getPath() + "/" + System.currentTimeMillis() + ".pdf"));
                document.open();
                Font chapterFont = FontFactory.getFont("", BaseFont.IDENTITY_H, 16, Font.BOLDITALIC);
                Font paragraphFont = FontFactory.getFont("", BaseFont.IDENTITY_H, 12, Font.NORMAL);

                Chunk chunk = new Chunk(b.getTitle(), chapterFont);

                Chapter chapter = new Chapter(new Paragraph(chunk), 1);
                chapter.setNumberDepth(0);
                chapter.add(new Paragraph(b.getLead(), paragraphFont));
                document.add(chapter);
                document.close();

当我使用英文单词时它工作正常,但是当我使用 arabicpersian 单词时它显示空行,

有什么问题?我该如何解决? 提前致谢,

可能是编码问题,确保默认编码设置为 UTF-8。

通过更改此行解决了此问题:

Font chapterFont = FontFactory.getFont("", BaseFont.IDENTITY_H, 16, Font.BOLDITALIC);

Font chapterFont = FontFactory.getFont("assets/arial.ttf", BaseFont.IDENTITY_H, 16, Font.BOLDITALIC);

第 1 步 - 添加字体:

Font font= FontFactory.getFont("assets/arial.ttf", BaseFont.IDENTITY_H, 16, Font.NORMAL);

第 2 步 - 添加 table(在我的例子中):

PdfPTable table = new PdfPTable(4);
        table.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);

        table.addCell(new PdfPCell(new Paragraph("بستانکار",font)));

并用于 RTL:

setRunDirection(PdfWriter.RUN_DIRECTION_RTL) .

您也可以在 PdfWriter 中使用此方法;