Ste*_*ano 3 fonts ghostscript cjk
我需要从PDF生成JPEG.JPEG必须基于Trim Box创建,而PDF可以是1.3版,其中额外的Pantone颜色绝对需要叠印预览,因此只有GhostScript(当然Rip可以处理它们).Photoshop,Image Magick和SIPS(OS X的可编写脚本图像处理系统)都无法解决这两个问题(剪裁裁剪和复合处理叠印).
我创建了一个应用程序来光栅化我收到的PDF,所有作品都很好,除了一些中文PDF有一个未嵌入的字体.此字体为中文STXiHei TrueType(CID),编码为G8pc-EUC-H(从Acrobat Pro中提取的信息).
现在当GhostScript处理这些PDF时出错了.我的问题是:
有人可以帮帮我吗?
这个(最终)在comp.text.pdf中的UseNet上得到了回答.问题是PDF文件包含对CIDFont(不是字体,CIDFont)的引用.与上面的问题陈述相反,字体没有嵌入,这就是困难.
CIDFonts比字体更复杂,并且用缺少拉丁语常规字体替换(例如)Courier的方式替换丢失字体并不简单.
跳过字体是不可能的,因为Ghostscript无法立即知道文本的呈现位置(即在我们找到要绘制文本的位置之前加载字体).
现在Ghostscript允许你指定其他字体; 在CIDFonts的情况下,这些在名为cidfmap的文件中描述,该文件位于Ghostscript发行版中的gs/Resource/Init中.
问题1是默认情况下GS将其资源内置到可执行文件中,并使用位于ROM文件系统中的文件.所以我们需要告诉GS寻找磁盘.有两种方法可以做到这一点:
1)将源分发中的所有资源(/ gs/Resource下的所有内容)复制到方便的位置,并使用-sGenericResourceDir =开关告诉GS使用此目录.如果执行此操作,则必须小心将尾随目录分隔符添加到路径的末尾.我提到这一点是因为通常使用GS你不会这样做.在这种情况下,PLRM说我们必须.
2)将cidfmap文件复制到方便的地方,并告诉GS使用-I开关查看该目录,该开关将目录添加到搜索列表的开头.重要的是它的头部,因为你只能有一个cidfmap文件,而GS使用它找到的第一个.
所以,对字体文件本身.您可以使用正版CIDFont,也可以使用TrueType字体替代CIDFont.
如果你使用真正的CIDFont,那么你必须使用上面的选项1(GenericResourceDir)并将文件放在GenericResourceDir位置下名为Resource/CIDFonts的目录中,或者使用选项2并将CIDFont放在名为CIDFonts的目录下. -I指向的位置.
如果使用TrueType字体作为替代,则可以使用cidfmap中字体条目中的/ Path键指向TrueType字体.
将未知来源的TrueType字体转换为特定类型的CIDFont的复杂性意味着您必须在cidfmap条目中提供大量信息,这在文件本身中有记录.需要注意的事项:
1)/ Path必须指向字体文件,它必须存在并具有允许读取的权限.
2)您应该为TrueType集合提供/ SubfontID.如果你想使用除第一个子词之外的任何东西,那么你必须提供一个SubfontID.
3)cidfmap中的条目由PostScript解释器解释,因此必须符合PostScript语法.特别是字体名称是PostScript名称对象,因此必须使用'/'引入.
最后; 许多Linux发行版没有提供Ghostscript的完整源代码,在使用上述任何建议之前,您可能需要选择它.你可以从这里获得版本: