我最近开始使用PDFBox处理一些PDF文件。我成功加载了Roboto字体,但是,我不了解PDType0Font,PDType1Font和PDTrueTypeFont之间的区别。哪个更好用?
问候
最佳答案
如果要使用标准的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
关于java - Apache PDFBox-PDFont类型之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56176890/