【问题标题】:PDFbox Using fallback font Helvetica for ZapfDingbatsPDFbox 为 ZapfDingbats 使用后备字体 Helvetica
【发布时间】:2021-05-07 23:20:10
【问题描述】:

我得到的错误是

2021-05-03 15:00:58.542  WARN 1 --- [nio-8099-exec-1] o.a.pdfbox.pdmodel.font.PDType1Font : Using fallback font Helvetica for ZapfDingbats
2021-05-03 15:00:58.542  WARN 1 --- [nio-8099-exec-1] o.apache.pdfbox.rendering.Type1Glyph2D : No glyph for code 52 (a20) in font ZapfDingbats

与 Helvetica 有类似问题,但在阅读了此处的回复 Pdf to image conversion using PdfBox
我在 /usr/local/fonts 中添加了两个缺少的字体

(PDFbox 在 Docker 上运行,我使用的是 openjdk:16-jdk-alpine3.12)

Helvetica 问题已解决,但 ZapfDingbats 问题仍然存在。

任何想法我做错了什么?

【问题讨论】:

  • 您是否尝试过安装 ZapfDingbats 字体?还是 Dingbats 或 MS-Gothic?您使用的是哪个 PDFBox 版本?
  • 是的,我已经尝试安装 ZapfDingbats 和 MS-Gothic。我还没有尝试过 Dingbats。我正在使用 2.0.23。我应该尝试什么 Dingbats 确切字体?
  • 它应该有提到的具体后记名称,这才是最重要的。请查看您的用户目录中的文件.pdfbox.cache 是否存在这些文件。您也可以删除它,它将重新生成。 (如果有新字体,应用程序重新启动后应该会自动发生)
  • 感谢您指向 .pdfbox.cache。我设法查看缺少哪些字体。似乎在我的特殊情况下,当我创建 docker 容器时,我必须下载 msttcorefonts-installer 和 ghostscript-fonts。对于那些会遇到类似问题的人,只需运行:apk --update add fontconfig msttcorefonts-installer ghostscript-fonts && \ fc-cache -f -v 哦,如果你正在运行 linux,那么 .pdfbox.cache 很可能会在 /root 下,默认情况下该文件是隐藏的,所以不要忘记列出所有 (ls -a)
  • 如果这解决了您的问题,请自己回答。

标签: pdfbox alpine


【解决方案1】:

在这种特殊情况下,问题在于 Alpine Linux(在容器内)没有我需要的字体(Helvetica 和 ZapfDingbats)。

在我必须添加的 docker 文件中

RUN apk --update add fontconfig msttcorefonts-installer ghostscript-fonts  && \
update-ms-fonts && \
fc-cache -f -v

Msttcorefonts 可以解决我的 Helvetica 字体问题,并且没有字形错误 ghostscript-fonts 会安装 Zapfdingbats。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2011-08-22
    • 2011-12-28
    • 1970-01-01
    相关资源
    最近更新 更多