在itext中的阿拉伯语

时间:2011-02-28 04:30:47

标签: java itext arabic

我正在尝试使用带有以下代码的 Itext 在表格中的单元格(pdf格式)中打印阿拉伯文字

Font f = FontFactory.getFont("C:\\Windows\\Fonts\\arabtype.ttf");
t.addCell(new Cell(new Phrase(name,f)));

名称是阿拉伯文字 但它打印“????”而不是阿拉伯文

2 个答案:

答案 0 :(得分:6)

您可以在itextpdf 5.4.2中使用com.itextpdf.text.pdf.languages.ArabicLigaturizer,如下所示:

LanguageProcessor al = new ArabicLigaturizer();
preface.add(new Paragraph(al.process("گزارش"), font));

答案 1 :(得分:5)

FontFactory.getFont()的默认编码(以及iText中的其他地方)存储在(搜索搜索)PUBLIC STRING中!这让生活变得轻松...... FontFactoryImp.defaultEncoding。如果我没记错的话,这会初始化为BaseFont.WINANSI(代码页(cp)1252。)

我建议将其设置为BaseFont.IDENTITY_H

myFontFactory.getFontImp().defaultEncoding = BaseFont.IDENTITY_H

使用“Identity H”的缺点是强制使用它的字体是嵌入式子集。如果您不想嵌入字体,则不能使用“身份H”。