2016-11-14 87 views
0

我遇到了一個奇怪的情況與特定的PDF組,並不知道從哪裏開始。如果我爆發25M,600 pg文件,則每個突發文件的輸出將變爲25M。如果我做pdftk input.pdf貓1-100輸出out.pdf,大小也是25M(原始爲25292kb vs 25524kb)。執行頁面範圍1-5將導致文件大小爲25040kb。PDFTK輸出與輸入相同的大小不管Cat'd頁面數量如何

有沒有可以添加到pdftk來處理這種情況的標誌? Ghostscript可以從這個PDF文件中獲得一個頁面範圍,並製作一個合適的PDF大小,但是gs似乎並沒有處理突發,並且需要安裝所有的字體。

回答

2

您可能對PDF做了以下假設:如果您的PDF文件大小爲3000 KB,且爲10頁,則分割此PDF將導致30個文件大小爲300 KB的文件。

這個假設是錯誤的。想象一下,一個3000 KB文件用十頁以下對象:在每一頁上使用

  • 四種字體的子集,每次約50 KB
  • 十張圖片在一個頁面上的身影,每次約200 KB(一個圖像每頁)在每一頁上,這一數字
  • 四象,每次約50 KB
  • 十頁約25 KB每個
  • 約350 KB的對象,如目錄中,信息詞典,網頁內容流樹,交叉參考表等...

單頁將需要至少: - 四項字體子集:4次50 KB - 單個圖像:1次200 KB - 四個圖像:4次50 KB - 單個內容流:1次50 KB - 稍微減少的交叉引用表,略微減少的頁面樹,幾乎相同的目錄,相同大小的信息字典... 200 KB

這就是850 KB。這意味着,如果將10頁3000 KB PDF文檔分成10個單獨的頁面,則最終會得到8500 KB(10倍850 KB)。

我的猜測是共享資源(每個頁面中使用的資源,例如字體)在您的PDF中是巨大的。例如。如果有人使用高分辨率圖像作爲每頁大約25M的背景,那麼600頁中的每一頁都將需要這些25M。

請注意,PdfTk只不過是iText過時版本的封裝。您可能想嘗試更新版本的iText,以確定問題是否存在。

+0

謝謝,這是非常有見地的,我很難找到這種類型的信息。有關如何分析和可能刪除該信息的任何建議? Ghostscript似乎能夠全權放棄這些信息並創建小型單個文件,這些文件的總數不會比原始單個文件大得多。 pdf2ps,然後回來,但資源飢渴。 – RyanH

+0

我認爲gs會「打印」PDF,這樣做會降低分辨率並移除結構樹,註釋等內容。另請注意,PdfTk較舊:它不支持PDF 1.5中引入的更高級壓縮。沒有看到文件,很難評論實際問題。 –

相關問題