Itext显示阿拉伯语单词

时间:2016-08-05 16:02:14

标签: android pdf itext arabic persian

我使用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字时,它显示空行,

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

3 个答案:

答案 0 :(得分:1)

通过更改此行修复此问题:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

第1步-添加字体:

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

第2步-添加表格(以我为例):

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中使用此方法;

相关问题