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

Fre*_*ind 7 pdf fonts itext

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

aaa.ttf
bbb.ttf
ccc.ttf
Run Code Online (Sandbox Code Playgroud)

我想用它们用iText创建我的pdf.

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

String encoding = ???
BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", 
                               encoding, 
                               BaseFont.EMBEDDED);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何找到encoding.就拿aaa.ttf例如:

在此输入图像描述

我可以encoding从信息中找到吗?我试过像BaseFont.CP1252or 一样的编码BaseFont.WINANSI,但是它们不起作用,输出是空白页或者很多??????字符,如果它们是汉字.

Bru*_*gie 10

这个问题有不同的答案.有关完整概述,您可以阅读我的书第11章"iText in Action",但如果您只是想要安全,请将Identity-H用于水平文本(和Identity-V).这不是一个真正的编码,但它将在使用Unicode的PDF中创建一个复合字体:http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#IDENTITY_H