从更高版本中删除 GhostScript 字体文件夹?

Posted

技术标签:

【中文标题】从更高版本中删除 GhostScript 字体文件夹?【英文标题】:GhostScript fonts folder removed from later versions? 【发布时间】:2016-07-12 14:35:49 【问题描述】:

我有一些 C# 代码使用 GhostScript(将其称为进程)将 postscript 转换为 PDF。目前我正在使用 GS v9.06。我注意到早期版本的 GS(即 v8.60)在安装过程中安装了一个字体(和资源)文件夹。 GS 的更高版本(如 v9.06)不再需要字体文件夹中的字体,因为该版本的安装程序不包含它们? -并且- 对于资源文件夹中的文件,确实是同样的问题。 到目前为止,我针对 v9.06 编写的代码似乎在没有字体文件夹存在的情况下工作。注意:我在 Windows 7 下运行 GS。

这是一个典型的调用:

gswin64c -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -q -dNOCCFONTS 
  -dSAFER -dNOPAUSE -dBATCH -dPDFSETTINGS=/ebook 
  -dAutoRotatePages=/PageByPage -sOutputFile=ex.pdf -c .setpdfwrite -f ex.ps

【问题讨论】:

【参考方案1】:

Windows 上的 Ghostscript 二进制版本将所有资源都内置到 ROM 文件系统中(即它们是可执行文件的一部分)。其他操作系统有所不同,特别是在 Linux 上,打包者可能会也可能不会跟随我们的领导。

你必须回溯很长一段时间才能到达一个不是这种情况的时代,我目前安装的最早版本 (8.71) 使用 ROM 文件系统,并且已经超过 6 年了。

字体和其他资源仍然存在,但不在磁盘上。

至于您的命令行,我个人不会使用 PDFSETTINGS,因为它会影响无数控件,可能无法按照您想要的方式设置它们。我会单独选择我想要的控件。

-dNOCCFONTS 不再做任何事情,只是一个调试控件,你不应该使用它。

你不再需要“-c .setpdfwrite -f”了。很多版本都没做过。

【讨论】:

我觉得删除 -dNOCCFONTS 很舒服,但不确定 .setpdfwrite。这个论点似乎在做一些性能方面的事情。有关 ROM 的信息很有趣且很有帮助。没有这些文件夹/数据,GS 可以正常工作的事实更能证明这一点,但是您的 cmets 让我放心了一点。谢谢 所有 .setpdfwrite 都会在垃圾收集器运行之前设置一个很大的阈值。这确实有一些性能影响,但实际上对任何正常工作都没有影响。真的,它不是必需的。如果它让您感觉更舒服,我是 pdfwrite 设备的维护者,我可以向您保证,它并不是真正需要的。该例程仍然存在的唯一原因是因为很多人都在使用它(不明白为什么),如果我删除它,他们会收到错误并打开错误报告.....

以上是关于从更高版本中删除 GhostScript 字体文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

调试 ghostscript 缺少字体错误的提示

如何将外部字体添加到 ghostscript?

GhostScript 完成转换为 PDF 后删除输入文件

无法让 Ghostscript 使用 OpenType 字体

未嵌入字体的 Ghostscript 和 PDF

将字体添加到 ghostscript 9.10