Java PDFBox“;此字体不允许进行子集设置";-是否可以在不设置子集的情况下使用字体?

Java PDFBox“;此字体不允许进行子集设置";-是否可以在不设置子集的情况下使用字体?,java,fonts,pdfbox,Java,Fonts,Pdfbox,我使用PDFBox(2.0.11)来创建/编辑PDF,并努力使用两种字体,这两种字体总是导致以下异常 This font does not permit subsetting 即使可以使用其他工具(如无任何问题)对字体进行子集设置 有没有可能在PDFbox中使用字体而不进行子集设置,或者有没有其他方法可以解决此问题 异常消息: Exception in thread "main" java.io.IOException: This font does not permit subsetting

我使用PDFBox(2.0.11)来创建/编辑PDF,并努力使用两种字体,这两种字体总是导致以下异常

This font does not permit subsetting
即使可以使用其他工具(如无任何问题)对字体进行子集设置

有没有可能在PDFbox中使用字体而不进行子集设置,或者有没有其他方法可以解决此问题

异常消息:

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)
已解决:

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)
下面是一个如何加载字体而不进行子集设置的工作示例:

File fontFile1 = new File("/fonts/fontfile.ttf");
InputStream fontFile1Stream = new FileInputStream(fontFile1);
PDType0Font product_title_font = PDType0Font.load(doc, fontFile1Stream, false);

是的,您仍然可以使用字体而无需子集,请使用

PDType0Font.load(PDDocument doc, InputStream input, boolean embedSubset)
最后一个参数为false。你的文件会更大,仅此而已。如果另一个产品可以将字体子集,则表示它不遵守许可证设置,或者PDFBox中存在错误。在可以显示os2表格的工具中打开字体,例如DTL OTMaster Light。在这里可以找到“fstype”条目。