2017-07-27 82 views
0

我確實有一個pdf生成管道,最後ghostscript(Linux)被調用以PDF結束(輸入ps)。該PDF必須儘可能的小,所以用一般的命令行是Ghostscript不應該嵌入字體,但只能列出替代品

ps2pdf13 -dSAFER -dPDFSETTINGS=/default -dEmbedAllFonts=false -dNoOutputFonts -dFastWebView infile outfile 

,沒有字體列爲通緝產生很好的PDF文件,假設是目標系統則應該使用任何他們不得不更換。是的,這可能意味着不同的系統會使用稍微不同的字體,因此會有不同的外觀。

大多數作品中,PDF屬性中列出了7種不同的字體。在Linux上很好地工作。

Windows(Acrobat Reader)抱怨其中一個丟失,然後不顯示任何一個字符。

我知道我可以讓gs嵌入字體,除了增加PDF大小50%。想要避免這種情況(雖然它的大約6000字節,這在每次運行中乘以大約30000次,並且因此計數)。

我很想有一種方法在PDF中嵌入「For Font Helvetica-Narrow只是使用Arial Narrow」(或類似)的信息。

這是否存在?

[編輯]

對不起,回覆遲了,很忙。 :(

好了,好了,我想爲字體選擇可能的選項列表。另外,從這樣來了,這個問題可能會消失走錯了路。

選項,順便說一句,不要做不同的大小,但它似乎是 -dEmbedAllFonts一個負責的尺寸,-dNoOutPutFonts 似乎不具有任何實際效果。

我比較反對(很舊的)蒸餾器,這是我們嘗試替換和使用pdffonts,我得到以下表格:

psp2d F:

name         type    encoding   emb sub uni object ID 
------------------------------------ ----------------- ---------------- --- --- --- --------- 
Helvetica-Narrow      Type 1   Custom   no no no  11 0 
Helvetica-Bold      Type 1   Custom   no no no  9 0 
Helvetica-Narrow-Bold    Type 1   WinAnsi   no no no  13 0 
Courier        Type 1   Custom   no no no  15 0 
Courier-Bold       Type 1   Standard   no no no  10 0 
Helvetica       Type 1   Custom   no no no  8 0 
Times-Italic       Type 1   Standard   no no no  21 0 

蒸餾器:

name         type    encoding   emb sub uni object ID 
------------------------------------ ----------------- ---------------- --- --- --- --------- 
Helvetica       Type 1   Custom   no no no  4 0 
Helvetica-Bold      Type 1   Custom   no no no  5 0 
Courier        Type 1   Custom   no no no  6 0 
Courier-Bold       Type 1   Custom   no no no  7 0 
Helvetica-Narrow      Type 1   Custom   no no no  8 0 
Helvetica-Narrow-Bold    Type 1   Custom   no no no  9 0 
Times-Italic       Type 1   Custom   no no no  15 0 

隨着PS2PDF創建PDF文件的Acrobat Reader抱怨 「字體 黑體窄邊無法找到」。蒸餾器工作。 我不明白。這是相同的列表,至少對於那種字體。

而且顯然它看起來很爛。

一種解決方案是嵌入字體。然後字體列表變成

name         type    encoding   emb sub uni object ID 
------------------------------------ ----------------- ---------------- --- --- --- --------- 
XVQNWP+Helvetica-Narrow    Type 1C   Custom   yes yes no  11 0 
Helvetica-Bold      Type 1   Custom   no no no  9 0 
LBTZEH+Helvetica-Narrow-Bold   Type 1C   WinAnsi   yes yes no  13 0 
Courier        Type 1   Custom   no no no  15 0 
Courier-Bold       Type 1   Standard   no no no  10 0 
Helvetica       Type 1   Custom   no no no  8 0 
Times-Italic       Type 1   Standard   no no no  21 0 

和文件尺寸增加的負載,這是我們希望避免的。蒸餾器 顯示其可能,但不是如何。

回答

0

不,您無法爲缺少的字體定義替代字體,這完全取決於觀衆。無論如何它會有幫助嗎?如果您定義的替代品不適用於觀衆,那麼它將不得不退回到自己的替代品,或者完全失敗。

在命令行上的一些評論:

如果你正在使用-dNoOutputFonts那麼你的PDF文件不應包含任何字體或字體的引用,在所有。它也會比禁用字體嵌入(相當大)大,並且可能大於嵌入子集字體的相同PDF,因爲所有文本都將被包含爲路徑數據,即使是中等數量的文本,路徑數據的重複也會超過字體大小。

它很難看出你如何管理生成一個文件,最終引用字體,但不包括字體。

你並不需要指定-dPDFSETTINGS=/default,因爲這是默認......

如果你想有一個更小的文件,不指定-dFastWebView產生一個線性化的PDF文件,該文件較大(因爲格式)比非線性文件。很少觀衆會尊重它,即使是那些只能加速第一頁視圖的文件,並且如果文件非常小,它的意義就沒有意義,因爲整個文件將會像線性文件的早期部分那樣快速到達。

強制版本爲1.3可能會使文件尺寸變大,至少在未來。