2016-12-18 30 views
0

我有一个从pdflatex嵌入R pdf图形创建的文档。我现在试图将它发送给需要嵌入所有字体的打印机(lulu)。我认为,没有problemo,ghostscript固执地拒绝嵌入字体

# 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

+0

符号是一个标准的“基地13”字体,可以假设在所有PostScript和PDF的消费者存在,所以它看起来OK没有嵌入时(和您的打印机不应该要求将其嵌入....)。 Zapf Dingbats也很标准。你不会说你使用的是什么版本的Ghostscript,而且你还没有提供一个例子来看看,所以它不太可能提供帮助。你可以尝试创建一个PDF/A-1b文件,因为这还需要嵌入所有的字体。如果你指出一个不适合你的例子,我可以看看它。 – KenS

+0

谢谢。我在mac osx下使用ghostscript 9.19。是的,这些应该是标准的,所以他们不应该需要嵌入,但lulu不接受我的文件。幸运的是,我刚刚找到了一个简单的选择---使用OSX打印文件工具,并且所有字体似乎都已嵌入。感谢pdf/A-1b提示。 –

回答

1

为了这个同样的问题的其他人的利益;这里的问题是有三个参数影响字体嵌入,并且它们以一些混乱的方式进行交互(抱歉,这些参数是由Adobe定义的,而不是我们...)

There/NeverEmbed,一个字体数组,是永远不会被嵌入,/ AlwaysEmbed,总是被嵌入(如果使用,显然)和/ EmbedAllFonts的字体数组。

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

如果您在AlwaysEmbed中设置字体,则无论EmbedAllFonts的设置如何,都将嵌入字体。

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

如果字体既不在AlwaysEmbed列表中,也不在NeverEmbed列表中,那么如果EmbedAllFonts为true,并且没有以其他方式嵌入,它将被嵌入。

现在,Ghostscript以EmbedAllFonts为真,所以你不需要摆弄它,除非你想由于某种原因将它设置为false。所以....为什么不嵌入标准字体?那是因为NeverEmbed列表默认设置为包含所有基本13种字体。 (documented在Distiller参数下)。

因此,如果您要嵌入这些字体,您需要使用PDFSETTINGS = /印前或/打印机,或者您需要将NeverEmbed设置为空。我建议后者:

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