Как узнать правильную кодировку при вызове BaseFont.createFont () с itext?

у меня есть некоторые пользовательские китайские файлы шрифтов:

aaa.ttf
bbb.ttf
ccc.ttf

и я хочу использовать их для создания моего pdf с iText.

это код, который я использую для создания BaseFont:

String encoding = ???
BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", 
                               encoding, 
                               BaseFont.EMBEDDED);

но я не знаю, как найти encoding. Взять aaa.ttf например:

enter image description here

можно найти encoding откуда информация? Я пробовал некоторые кодировки, такие как BaseFont.CP1252 или BaseFont.WINANSI, но они не работали, выход-пустая страница или много ?????? символы, если они китайские иероглифы.

1 ответов


на этот вопрос есть разные ответы. Для полного обзора вы можете прочитать главу 11 моей книги "iText in Action", но если вы просто хотите быть в безопасности, используйте Identity-H для горизонтального текста (и Identity-V). Это на самом деле не кодировка, но она создаст составной шрифт в PDF, который использует Unicode:http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#IDENTITY_H