Apache PDFBox-PDFont类型之间的差异

时间:2019-05-16 21:34:49

标签: java pdfbox

我最近开始使用PDFBox处理一些PDF文件。我成功加载了Roboto字体,但是,我不理解PDType0Font,PDType1Font和PDTrueTypeFont之间的区别。哪个更好用?

致谢

1 个答案:

答案 0 :(得分:1)

如果要使用标准的14种字体(时间,helvetica,信使,符号,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