2012-05-11 40 views
12

因此,這裏有一些關於PDF壓縮的主題,說在壓縮PDF文件時有一些但並不是很多,因爲PDF已經被壓縮了。是否壓縮了所有PDF文件?

我的問題是:這是適用於所有的PDF格式,包括舊版本的格式?

此外,我相信它可能爲某人(一個白癡也許)將位圖放入PDF而不是JPEG等。我們公司在其數據庫中有很多PDF(也許一些較舊的格式)。我們正在考慮在傳輸過程中使用gzip進行壓縮,但不知道它的值是多少。

回答

11

PDF 一般對它們包含的對象使用內部壓縮。但根據文件格式規範,這種壓縮決不是強制性的。所有(或某些)對象可能完全未壓縮,並且它們仍然會生成有效的PDF。

有一些命令行工具可以解壓大多數(如果不是全部的話)內部對象流(甚至是最新版本的PDF) - 並且新的未壓縮版本的文件將完全呈現在屏幕上或紙上(如果打印)相同。

所以要回答你的問題:不,你不能認爲gzip壓縮只是增加了麻煩,沒有任何好處。你必須用一組有代表性的文件來測試它。只需將其壓縮並注意所用時間和節省的空間。

這也取決於其使用PDF製作軟件的類型......

+0

謝謝皮皮塔斯。好的答案 –

2

而是採用gzip壓縮的,你會使用PDF公用事業的格式中應用壓縮的內容得到更好的增益以及像刪除不需要的嵌入字體之類的東西。這些工具可以對圖像進行縮減採樣並應用適當的圖像壓縮,這比gzip更有效。 JBIG2可以應用於雙層圖像,效果非常好,可以將JPEG應用於自然圖像,並選擇適合您需要的質量等級。在Acrobat Pro中,您可以使用「高級」 - >「PDF優化器」來查看使用空間的位置並有選擇地攻擊這些使用者。還有一個通用的文檔 - >減少文件大小來自動應用這些減少。

更新:

伊卡的回答有一個鏈接到一個PDF優化工具,可以從Java中使用。你可以看看他們的sample Java code there。該代碼完全列出了我提到的內容:

  • 刪除重複的字體,圖像,ICC配置文件和任何其他數據流。
  • 可選擇將高質量或可打印的PDF文件轉換爲小巧,高效且易於使用的PDF文件。
  • (可選)將大圖像下采樣到給定的分辨率。
  • 可選擇使用JBIG2和JPEG2000壓縮格式壓縮或重新壓縮PDF圖像。
  • 壓縮未壓縮的流並刪除未使用的PDF對象。
+0

我對PDF實用程序不熟悉。有沒有一個JAVA API,因爲我們使用它的任何解決方案都必須有一個API,以便我們可以在我們的服務器上自動執行這個過程?我知道Apache PDFbox,但不知道它是如何好壓縮已經建成的PDF –