我有一个 PDF,它在 Acrobat 中渲染良好,但在打印机 RIP 上的 PDF 到 PS 转换过程中无法打印。用 pdftk 解压缩并编辑后,我发现如果我替换某种字体的使用,它将打印。
该字体是一种奇怪的字体,是带有单个字符(空格)的 TrueType 子集。
如果我通过 Ghostscript 传递 PDF,它不会报告任何错误,但是 Acrobat 飞行前检查将报告缺少空格字形。原始文件不会报告此错误。我只是使用一个基本命令: gswin32c -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -o gs.pdf original_sample.pdf
我已经从原始 PDF 中提取了字体数据并保存了它。运行 TTFDUMP.exe 会产生一个有趣的结果,其中似乎缺少“glyf”表:
4. 'glyf' - chksm = 0x00000000, off = 0x00000979, len = 0
5. 'head' - chksm = 0xE463EA67, off = 0x00000979, len = 54
只是想知道,我对这个结果的解释正确吗?像这样对从 PDF 提取的数据运行 TTFDUMP 是否有效?我认为根据规范需要一个“glyf”表,至少对于前 4 个必要的字符。
在 Ghostscript PDF 上运行 TTFDUMP 会产生类似的结果,但具有 1 字节的“glyf”表。
如果是这样,则 Acrobat 似乎并不特别关心缺少的空间,而其他程序(包括打印机)则特别关心。奇怪的是,直到它通过 Ghostscript 运行才被报告为丢失。
该 PDF 是由 Adobe InDesign 创建的,并且该字体像大多数字体一样受版权保护,因此我无法共享它。
编辑 - 我已经接受了 Ken 的回答,因为他在 Ghostscript 错误跟踪器上帮助了我。总之,由于缺少 glyf 表,字体似乎被破坏了。在我听到其他消息之前,我将不得不假设这是 InDesign 中的一个错误,并将继续调查。