首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用GhostScript嵌入字体的PDF文件的Rasterize

不使用GhostScript嵌入字体的PDF文件的Rasterize
EN

Stack Overflow用户
提问于 2011-07-10 21:28:30
回答 1查看 2.2K关注 0票数 3

我需要从PDF生成JPEG。JPEG必须创建基于Trim框和PDF的版本1.3与额外的潘通颜色,绝对需要重印预览,所以只有GhostScript (当然,里普的可以处理他们)。Photoshop、Image和SIPS ( OS的可脚本图像处理系统)都无法解决这两个问题(裁剪和复合处理重印)。

我创建了一个应用程序,以光栅我收到的PDF,所有的工作良好,除了一些中国PDF有一种字体,而不是嵌入。此字体为中文STXiHei TrueType (CID),编码G8pc-EUC-H (从Acrobat提取的信息)。

现在,当GhostScript处理这些PDF时,会出现错误。我的问题是:

  1. ,因为未嵌入的字体位于TrimBox区域之外,有一个GS参数允许跳过不嵌入字体?如果第1点不可能,那么如何替换丢失的字体?
  2. --在OS上安装GS 9.02 --不要安装cidfmap文件或字体文件夹。
  3. --我需要安装什么以及在哪里使用替代字体?
  4. 我多次阅读use.htm,并花费了几天的测试时间试图忽略或替换另一个未嵌入的字体。这个论点似乎很复杂,但解决办法可能很简单。

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2011-07-13 16:20:32

这(最终)在UseNet上(在comp.text.pdf中)得到了回答。问题是PDF文件包含对CIDFont (不是字体,CIDFont)的引用。与上面的问题声明相反,字体不是嵌入的,这是困难所在。

CIDFonts比字体要复杂得多,用(例如)速递代替缺少的拉丁文常规字体,代替缺失的字体并不简单。

不可能跳过字体,因为Ghostscript无法立即知道文本将呈现在何处(即在我们找出文本将要绘制的位置之前,字体已经加载)。

现在,Ghostscript允许您指定其他字体;在CIDFonts的情况下,这些都在Ghostscript发行版中位于gs/Resource/Init中的称为cidfmap的文件中进行了描述。

问题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放在-I指向的位置下的名为CIDFonts的目录中。

如果使用TrueType字体作为替代,则可以使用cidfmap中字体条目中的/Path键指向TrueType字体。

将未知来源的TrueType字体转换为特定类型的CIDFont的复杂性意味着您必须在cidfmap条目中提供大量信息,这在文件本身中有记录。需要注意的事情:

1) /Path必须指向字体文件,它必须存在并具有允许读取它的权限。

2)您应该为一个/SubfontID集合提供一个TrueType。如果您想使用除第一个子字体之外的任何内容,则必须提供一个SubfontID。

3) cidfmap中的条目由PostScript解释器解释,因此必须符合PostScript语法。特别地,字体名是一个PostScript名称对象,因此必须用'/‘引入。

最后,许多Linux发行版都没有为Ghostscript提供完整的源代码,您可能需要在使用上面的任何建议之前了解这一点。你可以从这里得到释放:

http://www.ghostscript.com/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6643817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档