显示与PDFBox的和Swing嵌入字体(Displaying embedded fonts wit

2019-09-21 11:33发布

我使用PDFBox的显示的JInternalFrame内的PDF文件。 当打开PDF,我有很多这样的警告:

Changing font on <m> from <Tahoma Negrita> to the default font

据我所知,所报告的字体不是标准组14种字体的一部分。 所以我决定来检查,如果这些字体嵌入到PDF文件(认为不应该有一个问题加载嵌入字体,对吧?)。

于是我打开不同的读者的文件,并检查属性/字体。 我在怀疑这个部分是否报告通过实际嵌入到文档中的文件或字体所需的字体。

我得到的信息如下:

BAAAA+Tahoma-Bold (embedded Subset), type:TrueType, Encoding:
CAAAA+Tahoma (Embedded Subset), type:TrueType, Encoding:

困惑这个问题,我研究了如何从嵌入的OpenOffice字体和发现,PDF / A-1A选项应该进行检查。 所以我做了使用此选项的另一个PDF(如果使原始的PDF文件时,这是没有使用),但我得到了相同的结果。

我想你的指导了解如何工作的。 我希望能够打开PDF文件一样的PDF阅读器做。 我也看了一下PDFBox_External_Fonts.properties,但我猜,因为我处理的嵌入字体这个文件不能被修改。

谢谢。

Answer 1:

PDFBOX是不能分析的TrueType字体嵌入子集。

据我了解,嵌入的TrueType子集缺少该PDFBOX需要的字体文件的一些元数据。

是已知的bug,但不容易解决。 现在,我只能建议使用嵌入Type 1字体如果可能的话,可以PDFBOX对付他们。

您也可以尝试设置下的路径,在pdfbox.jar您完整的字体文件组织/阿帕奇/ PDFBOX /资源/ PDFBox_External_Fonts.properties,所以如果PDFBOX无法解析的子集,它至少可以找到一个完整路径的原始字体文件。 也许这工作,但我没有测试过这一点。

祝好运!



文章来源: Displaying embedded fonts with PDFBox and Swing
标签: java pdfbox