itext 中的阿拉伯语
我正在尝试使用 Itext 和以下代码在表格内的单元格(pdf 格式)中打印阿拉伯文本
Font f = FontFactory.getFont("C:\\Windows\\Fonts\\arabtype.ttf");
t.addCell(new Cell(new Phrase(name,f)));
,其中 name 是阿拉伯文本 但它打印 "????" 而不是阿拉伯文本
I am trying to print Arabic text in cell inside table (in pdf) using Itext with the following code
Font f = FontFactory.getFont("C:\\Windows\\Fonts\\arabtype.ttf");
t.addCell(new Cell(new Phrase(name,f)));
Where name is an Arabic text
But it print "????" instead of the Arabic text
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在 itextpdf 5.4.2 中使用 com.itextpdf.text.pdf.languages.ArabicLigaturizer,如下所示:
You can use com.itextpdf.text.pdf.languages.ArabicLigaturizer in itextpdf 5.4.2 as following:
FontFactory.getFont()
(以及 iText 中的其他所有位置)的默认编码存储在(搜索搜索)公共字符串中!这让生活变得轻松...... FontFactoryImp.defaultEncoding。它被初始化为BaseFont.WINANSI
(如果我没记错的话,代码页(cp)1252)。我建议将其设置为 BaseFont.IDENTITY_H:
使用“Identity H”的唯一缺点是,这会强制使用它的字体成为嵌入子集。如果您不想嵌入字体,则可以不使用“Identity H”。
The default encoding for
FontFactory.getFont()
(and just about everywhere else in iText) is stored in (search search) A PUBLIC STRING! That makes life easy... FontFactoryImp.defaultEncoding. This is initialized toBaseFont.WINANSI
(code page (cp) 1252 if I recall correctly).I recommend setting it to
BaseFont.IDENTITY_H
:The only downside to using "Identity H" is that this forces fonts using it to be embedded subsets. If you want to not embed a font, you may not use "Identity H".