Apache PDFBox - разница между типами PDFont - PullRequest
1 голос
/ 17 мая 2019

Я недавно начал использовать PDFBox для обработки некоторых файлов PDF.Я успешно загрузил шрифт Roboto, однако я не понимаю разницы между PDType0Font, PDType1Font и PDTrueTypeFont.Какой из них лучше использовать?

С уважением

1 Ответ

1 голос
/ 17 мая 2019

Если вы хотите использовать стандартные 14 шрифтов (раз, helvetica, courier, symbol, zapf dingbats) => использовать PDType1Font.HELVETICA и т. Д. (Поддерживается только WinAnsiEncoding)

Если у вас есть шрифты type1 на вашемкомпьютер и хотите использовать их => используйте конструктор PDType1Font.

Если вы хотите использовать шрифты TrueType неэффективным способом (только 256 символов, без поднабора) => используйте PDTrueTypeFont.load().

Если вы хотите эффективно использовать шрифты TrueType (более 256 символов, подмножество) => используйте PDType0Font.load().Вы можете и должны использовать один и тот же объект шрифта для всего PDF, т. Е. Не создавать новый объект PDFont для каждой страницы.

Если вы хотите использовать коллекции TrueType, сделайте следующее:

TrueTypeCollection ttc = new TrueTypeCollection(new File("C:/windows/fonts/mingliu.ttc"));
PDFont font = PDType0Font.load(doc, ttc.getFontByName("MingLiU"));
...
ttc.close(); // only after PDF has been saved
...