gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:56:05 26 4
gpt4 key购买 nike

我正在使用 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 的内容,但我猜不应该修改此文件,因为我正在处理嵌入式字体。

谢谢。

最佳答案

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

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

这个错误是已知的,但不容易解决。现在我只能建议尽可能使用嵌入式 Type 1 字体,pdfbox 可以处理它们。

您还可以尝试在 org/apache/pdfbox/resources/PDFBox_External_Fonts.properties 下的 pdfbox.jar 中设置完整字体文件的路径,这样如果 pdfbox 无法解析子集,至少它可以找到完整路径到原始字体文件。也许这行得通,但我还没有测试过。

祝你好运!

关于java - 使用 PDFBox 和 Swing 显示嵌入字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12078014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com