2011-12-15 32 views
0

有兩個pdf,第一個是用libharu創建的,第二個是用PDF :: API2創建的。如果不提及座標,那麼內容是相同的。但是,第一張pdf超過了第四張。只有一個區別是我發現的是在文檔屬性字體選項卡中顯示的字體嵌入類型。爲什麼在幾乎相同的文檔的大小上有如此大的差異

在第一

Verdana (Embedded Subset) 
    Type: TrueType 
    Encoding: Custom 

在第二

Verdana 
    Type: TrueType 
    Encoding: Custom 
    Actual Font: Verdana 
    Actual font Type: TrueType 

如何應對嵌入式子集?

回答

1

有很多因素會影響PDF的大小。你的問題可能在創建PDF庫處理方式字體嵌入,具體如下:

  • 「嵌入式子集」是指字體的規格的一部分,就像字形寬度,都包含在文件中。
  • 如果字體沒有嵌入,大概是由讀者從系統加載的,減小了文件的大小。

如果的PDF已經很小(只有一個頁面,小文和沒有圖像),嵌入字體可以對文檔進行大小的比較大的差別。儘管如此,絕對而言,嵌入式字體不應占用大量空間。

你應該檢查的另一個因素是壓縮。 PDF大多是純文本流,但通常以壓縮形式出現。嘗試在純文本編輯器中打開兩個PDF文件,看看它是否可讀或亂碼。亂碼(壓縮)形式自然會佔用較少的空間。

最後,您可以檢查PDF文件是由使用許多PDF檢查器在那裏組成的對象,例如this one(我只是google了一下,沒有保證它會按預期工作)。

+0

不知道你對Linux任何PDF檢查?我google了很多,但它看起來只有Mac和Windows才存在。 – Yola 2011-12-15 11:56:16

+1

嵌入子集是指僅包含文檔中使用的字形的字體。字體指標應該始終在文件中。 – Jimmy 2011-12-15 11:58:45

1

這是一個老問題,但我有一個類似的問題。

您是否設置了libharu來壓縮您的PDF?

在C++

,從documentation

HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL); 
相關問題