2016-12-18 34 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