有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用PDFBox和Swing显示嵌入式字体的java

我使用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_外部_字体的文章。属性,但我猜这个文件不应该被修改,因为我处理的是嵌入式字体

谢谢


共 (1) 个答案

  1. # 1 楼答案

    pdfbox无法分析TrueType字体的嵌入子集

    据我所知,嵌入式TrueType子集缺少pdfbox所需字体文件的一些元数据

    该漏洞是已知的,但不容易解决。现在我只能建议尽可能使用嵌入式Type 1字体,pdfbox可以处理这些字体

    您还可以尝试在pdfbox中设置完整字体文件的路径。org/apache/pdfbox/resources/pdfbox_External_字体下的jar。属性,因此如果pdfbox无法解析子集,至少它可以找到原始字体文件的完整路径。也许可以,但我还没有测试过

    祝你好运