我有一个从 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
为了其他遇到同样问题的人的利益;这里的问题是,有三个参数影响字体嵌入,并且它们以某种令人困惑的方式交互(抱歉,这些参数是由 Adobe 定义的,而不是我们......)
有 /NeverEmbed,一组字体,它们是never要嵌入的 /AlwaysEmbed,一组字体always嵌入(如果使用,显然)和/EmbedAllFonts。
您不能将字体同时放入 NeverEmbed 和 AlwaysEmbed 中,这是一个错误。
如果您在 AlwaysEmbed 中设置字体,则无论 EmbedAllFonts 的设置如何,它们都会被嵌入。
如果您在 NeverEmbed 中设置字体,则无论 EmbedAllFonts 的设置如何,它们都永远不会被嵌入。
如果字体既不在 AlwaysEmbed 也不在 NeverEmbed 列表中,则如果 EmbedAllFonts 为 true,则将嵌入该字体,否则不嵌入。
现在,Ghostscript 以 EmbedAllFonts true 开头,因此您不需要摆弄它,除非您出于某种原因想将其设置为 false。那么......为什么它不嵌入标准字体?那是因为 NeverEmbed 列表默认设置为包含所有 13 种基本字体。 (这is 有记录的 https://ghostscript.com/doc/9.20/VectorDevices.htm#note_11在蒸馏器参数下)。
因此,如果您想嵌入这些字体,您要么需要使用 PDFSETTINGS=/prepress 或 /printer,要么需要将 NeverEmbed 设置为空。我推荐后者:
-c "<</NeverEmbed []>> setdistillerparams" -f
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)