我最近开始使用PDFBox来处理一些PDF文件。我成功加载了 Roboto 字体,但是,我不明白 PDType0Font、PDType1Font 和 PDTrueTypeFont 之间的区别。使用哪一个更好?
问候
如果你想使用标准的 14 种字体(times、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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |