我有一个PDF渲染罚款在Acrobat,但未能打印在PDF到PS转换过程中,我们的打印机的RIP。在用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有效吗?我认为,至少对于前4个必需的字符,根据规范需要一个“glyf”表。
TTFDUMP在幽灵脚本PDF上运行,会产生类似的结果,但使用的是一个1字节的“glyf”表。
如果是这样的话,看起来Acrobat并不特别关心缺少的空间,而其他程序(包括打印机)则是如此。奇怪的是,直到它通过Ghostscript才被报告丢失。
PDF是由Adobe创建的,字体是受版权保护的,所以我无法分享。
编辑-我已经接受了肯的回答,因为他帮助我在鬼脚本错误跟踪器。总之,由于缺少glyf表,字体似乎被破坏了。除非我听到其他消息,否则我将不得不假设这是InDesign中的一个bug,并将继续调查.
发布于 2014-10-16 07:25:11
是的,您可以在嵌入式子集字体上运行ttfdump,它仍然是一个非常有效的字体。
缺少的字形不是一个具体的问题,因为使用的是.notdef字形,缺少的.notdef表示字体是不合法的。
我认为您误解了共享PDF文件的合法性(从字体嵌入的角度来看)。实际上,您看到的每个PDF文件都将包含版权字体,但允许将这些字体作为PDF (或PostScript)文件的一部分嵌入和分发。TrueType字体包含控制字体DRM的标志,可以拒绝以PDF (或其他格式)嵌入。Ghostscript在字体中授予这些嵌入标志,Acrobat和其他Adobe产品也是如此。
有一些字体无意中随DRM一起提供,从而阻止了嵌入,其中有一个列表,以及字体铸造厂的一个明确声明,即允许嵌入这些字体。我想这是几年前Adobe网站上的某个地方。
因此,如果您有一个包含字体的PDF文件(特别是如果它是由Adobe应用程序生成的),那么我很乐意分享它的合法性。
我很难弄清楚到底是什么问题,以及如何使用Ghostscript。如果您正在运行PDF->PS,然后返回到PDF,那么所有的投注都会被坦率地取消。往返文件往往会引起问题。
无论如何,我很乐意查看该文件,但您必须让它可用。
https://stackoverflow.com/questions/26397712
复制相似问题