【问题标题】:ghostscript stubbornly refuses to embed fontsghostscript 顽固地拒绝嵌入字体
【发布时间】:2016-12-18 03:09:21
【问题描述】:

我有一个从 pdflatex 创建的文档,其中嵌入了 R pdf 图表。我现在正试图将它发送给要求嵌入所有字体的打印机(lulu)。我想,没问题,

# gs -dNOPAUSE -dBATCH -dNOPLATFONTS -sDEVICE=pdfwrite \
  -dEmbedAllFonts=true -sOutputFile=book-gs.pdf -f book.pdf

但令我失望的是,有些字体仍然没有嵌入:

# pdffonts book-gs.pdf | egrep 'no  [yn]'
name                                 type              encoding         emb sub uni object ID
ZapfDingbats                         Type 1            ZapfDingbats     no  no  yes   1170  0
Symbol                               Type 1            Symbol           no  no  no    1933  0

奇怪的是,pdf 文档的打印效果很好,所以字体一定是活的。我已经尝试过使用 adobe acrobat 程序进行类似的操作,但我遇到了同样的问题。

建议表示赞赏。

真诚的,/iaw

【问题讨论】:

  • Symbol 是标准的 'base 13' 字体,并且可以假定存在于所有 PostScript 和 PDF 消费者中,因此在不嵌入时看起来不错(并且您的打印机不应该要求嵌入它....)。 Zapf Dingbats 也很标准。你没有说你正在使用什么版本的 Ghostscript,你也没有提供一个例子来查看,所以它真的不可能有太大帮助。您可以尝试创建 PDF/A-1b 文件,因为这也需要嵌入所有字体。如果您指出一个不适合您的示例,我可以研究一下。
  • 谢谢。我在 mac osx 下使用 ghostscript 9.19。是的,这些应该是标准的,所以它们不需要嵌入,但是 lulu 不接受我的文件。幸运的是,我刚刚找到了一种简单的替代方法 --- 使用 OSX 打印到文件工具,所有字体似乎都嵌入了。也感谢 pdf/A-1b 的提示。

标签: r ghostscript pdflatex


【解决方案1】:

为了其他有同样问题的人的利益;这里的问题是影响字体嵌入的三个参数,并且它们以某种令人困惑的方式交互(抱歉,这些参数是由 Adob​​e 定义的,而不是我们......)

有 /NeverEmbed,一个从不要嵌入的字体数组,/AlwaysEmbed,一个总是要嵌入的字体数组(如果使用,显然)和/EmbedAllFonts。

您不能将字体同时放入 NeverEmbed 和 AlwaysEmbed,这是一个错误。

如果您在 AlwaysEmbed 中设置字体,无论 EmbedAllFonts 的设置如何,它们都会被嵌入。

如果您在 NeverEmbed 中设置字体,则无论 EmbedAllFonts 的设置如何,它们都不会被嵌入。

如果字体既不在 AlwaysEmbed 列表中,也不在 NeverEmbed 列表中,则在 EmbedAllFonts 为 true 时将嵌入该字体,否则不嵌入。

现在,Ghostscript 以 EmbedAllFonts true 开头,因此除非出于某种原因想要将其设置为 false,否则您无需对其进行处理。那么....为什么它不嵌入标准字体?那是因为 NeverEmbed 列表默认设置为包括所有基本 13 种字体。 (这个 documented 在 Distiller 参数下)。

因此,如果您想嵌入这些字体,您要么需要使用 PDFSETTINGS=/prepress 或 /printer,要么需要将 NeverEmbed 设置为空。我推荐后者:

-c "<</NeverEmbed []>> setdistillerparams" -f

【讨论】:

    【解决方案2】:

    难道 Courier/Helvetica 实际上是默认嵌入的?当谈到 MiKTeX 的 ghostscript (mgs) 时,似乎 64 位的一个默认嵌入它们,而 32 位的一个则没有。请参阅:https://github.com/MiKTeX/miktex/issues/296。亲切的问候,伊万

    【讨论】:

      猜你喜欢
      • 2011-06-19
      • 2013-12-26
      • 2014-10-25
      • 1970-01-01
      • 2017-01-03
      • 2014-04-27
      • 2010-10-13
      • 2018-01-03
      • 1970-01-01
      相关资源
      最近更新 更多