我有一份PDF文件在Acrobat中显示正常,但在打印机RIP的PDF到PS转换过程中无法打印。通过使用pdftk解压缩和编辑,我发现如果替换某个字体的使用,它就可以打印。
这种字体很奇怪,是一个只有一个字符(空格)的TrueType子集。
如果我将PDF传递给Ghostscript,它不会报告任何错误,但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中的一个错误,并将继续调查。