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

Posted

技术标签:

【中文标题】如何将外部字体添加到 ghostscript?【英文标题】:How can I add external fonts to ghostscript? 【发布时间】:2017-01-11 11:51:31 【问题描述】:

我有一个文件夹(在我的 linux 机器中),其中包含一些字体文件(*.ttf 字体)。我正在尝试将这些字体添加到 ghostscript,同时运行 gs 命令以从 postscript 转换为 pdf。在运行 gs 命令时添加该字体的选项是什么。请告诉我 -I,-sFontResourceDir,-sFONTPATH 的工作原理。

我正在尝试以下命令,但我无法观察到任何东西。

gs -dSAFER -dBATCH -sDEVICE=pdfwrite -sNOPAUSE -dQUITE -sOutputFile=/home/prasad/Desktop/Virtual_pdf.pdf /home/prasad/Desktop/VirtualPrinter_06_01_2017_14_00_54_670.ps

提前致谢。

【问题讨论】:

【参考方案1】:

首先,您需要知道 PostScript 不支持 TrueType 字体(是的,它确实支持 42 型字体,它们并不完全相同)。

因此,添加 TrueType 字体作为缺失字体的替代品(我认为这就是您想要这样做的原因)不能保证有效。问题在于猜测字符代码到字形 ID 的映射。

如果您想在“运行 Ghostscript”时添加字体,那么您需要编写一个 PostScript 程序来执行此操作,这超出了此处的答案范围。所以我假设你真的想在 Ghostscript 维护的字体/替换列表中添加一个 Font,有两个地方;

首先在 fontmap.GS 文件中找到字体,您可以在 Linux 系统上的 ..../gs/Resource/Init 中找到该文件。显然你必须自己找到 Ghostscript 安装文件夹,它通常在 /usr 下。

其次,同一位置的 cidfmap 文件列出了 CIDFonts 和替代品。

这两个文件中条目的格式都记录在文件中的 cmets 中。

-I 开关记录在 Ghostscript 文档、use.htm 或 here

FontResourceDir 记录在同一文件的“资源相关参数”下

-sFONTPATH 再次记录在"8.2 Font Lookup" 下的同一文件中,其中对所有这些参数如何交互有相当长的解释。

请注意 -dQUITE 不会做任何事情,这不是一个有效的参数,我怀疑你的意思是 -dQUIET 我不会在尝试亲自调试问题时设置它。 -sNOPAUSE 也不会做任何事情,因为那应该是 -dNOPAUSE

【讨论】:

以上是关于如何将外部字体添加到 ghostscript?的主要内容,如果未能解决你的问题,请参考以下文章

将字体添加到 ghostscript 9.10

配置 Ghostscript 以使用“MT Extra”字体

未嵌入字体的 Ghostscript 和 PDF

使用 github cli 将外部协作者添加到组织存储库

在 ghostscript 中添加 OTF 字体 Latin Modern Roman 以生成矢量化 pdf

PDF 优化 Acrobat 与 Ghostscript