您可能對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,以確定問題是否存在。
謝謝,這是非常有見地的,我很難找到這種類型的信息。有關如何分析和可能刪除該信息的任何建議? Ghostscript似乎能夠全權放棄這些信息並創建小型單個文件,這些文件的總數不會比原始單個文件大得多。 pdf2ps,然後回來,但資源飢渴。 – RyanH
我認爲gs會「打印」PDF,這樣做會降低分辨率並移除結構樹,註釋等內容。另請注意,PdfTk較舊:它不支持PDF 1.5中引入的更高級壓縮。沒有看到文件,很難評論實際問題。 –