我正在使用文档生成工具(高级表单)生成 PDF 文件。
我最近关闭了“嵌入字体”选项以减小文件大小,因为我们使用大多数计算机上安装的 Calibri 字体。
这导致 Chrome 中出现一些问题,一些文本无法正确显示。查看下面的图片可以了解我的意思。两张图片均来自在同一台计算机上打开的同一个 PDF,但一个在 Chrome 中打开,另一个在 Acrobat Reader 中打开。
有人知道这个问题的原因是什么或者如何在不嵌入字体的情况下解决这个问题?
它在 Chrome 中看起来如下:
这是它在 Acrobat Reader 中的样子以及它应该的样子:
这是 Acrobat 向我显示的字体信息。就我目前发现的情况来看,Identity-H 编码(而不是 Ansi)可能是导致问题的原因。不过我还不太清楚如何解决这个问题。
答案1
有谁知道这个问题的原因是什么...
PDF 可能使用自定义编码(字符的非标准整数值)生成,这通常是渲染错误字符的机会 - 但不知道 Chrome 为何会错误处理这种情况。您可以在 Adobe Reader 中的 PDF 文档属性中检查自定义编码。
或者我如何在不嵌入字体的情况下解决这个问题?
您可以尝试“子集”字体嵌入,这样只嵌入实际使用的字形。一些 PDF 制作工具会嵌入整个字体,包括您实际上未使用的字符。嵌入子集可以减小生成的文件的大小。它通常会导致字形的自定义编码。目的是改变您的应用将文本写入 PDF 的方式,希望您能找到 Chrome 的 PDF 渲染器可以理解的安排。
我知道的另一种处理此问题的方法是将字母“压平”为填充轮廓 - 许多 PDF 制作工具都有此选项。但它会使文件大小膨胀。