我使用PDFBox(2.0.11)创建/编辑PDF,并努力使用两种字体,这些字体总是导致如下异常
ACCESS_FINE_LOCATION
即使可以使用Everything fonts之类的其他工具将字体进行子集化也没有任何问题。
是否可以在PDFbox中使用字体而不对其进行子设置,或者是否有其他方法可以解决此问题?
异常消息:
This font does not permit subsetting
已解决:
以下是一个有效的示例,说明了如何加载字体而不对其进行子设置:
Exception in thread "main" java.io.IOException: This font does not permit subsetting
at org.apache.pdfbox.pdmodel.font.TrueTypeEmbedder.subset(TrueTypeEmbedder.java:298)
at org.apache.pdfbox.pdmodel.font.PDType0Font.subset(PDType0Font.java:239)
答案 0 :(得分:1)
是的,您仍然可以使用字体而不进行子设置,使用
PDType0Font.load(PDDocument doc, InputStream input, boolean embedSubset)
,最后一个参数= false。您的文件将更大,仅此而已。如果其他产品可以将字体作为子集,则意味着它不遵守许可设置,或者PDFBox中存在错误。在可以显示os2表的工具中打开字体,例如DTL OTMaster灯。在此查找“ fstype”条目。 https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype