Pdf 使用itext调用BaseFont.createFont()时,如何知道正确的编码?

Pdf 使用itext调用BaseFont.createFont()时,如何知道正确的编码?,pdf,fonts,itext,Pdf,Fonts,Itext,我有一些自定义中文字体文件: aaa.ttf bbb.ttf ccc.ttf 我想用它们用iText创建我的pdf 这是我用来创建BaseFont的代码: String encoding = ??? BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", encoding, BaseFont.EM

我有一些自定义中文字体文件:

aaa.ttf
bbb.ttf
ccc.ttf
我想用它们用iText创建我的pdf

这是我用来创建
BaseFont
的代码:

String encoding = ???
BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", 
                               encoding, 
                               BaseFont.EMBEDDED);
但是我不知道如何找到
编码。以
aaa.ttf
为例:


我可以从信息中找到
编码吗?我尝试了一些编码,如
BaseFont.CP1252
BaseFont.WINANSI
,但它们不起作用,输出是空白页或很多
???
字符(如果它们是汉字)。

这个问题有不同的答案。要获得完整的概述,您可以阅读我的书的第11章“iText in Action”,但如果您只是想安全起见,请将Identity-H用于水平文本(和Identity-V)。这不是真正的编码,但它将在PDF中创建一个使用Unicode的复合字体:

感谢您的帮助,itext的创建者。我刚刚尝试了
IDENTITY\u H
,发现字符可以在pdf中正确显示。