PDFBox“此字体不允许子集”-可以不使用子集使用字体吗?

时间:2018-07-19 07:46:53

标签: java fonts pdfbox

我使用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)

1 个答案:

答案 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