我使用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();
当我使用英语单词时,它工作正常,但当我使用arabic
或persian
字时,它显示空行,
有什么问题?我该如何解决? 提前谢谢,
答案 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中使用此方法;