2011-02-09 119 views
5

我正在研究一個將寫PDF的工具,並試圖找到一種方法來壓縮PDF中的對象和流。我生成的許多PDF格式都相當大,但是可以通過將對象(或大多數PDF結構)壓縮成flate流來大幅減少。我發誓我以前見過這個,但我看過的所有PDF似乎都沒有。我也嘗試使用Acrobat X以「整個文件壓縮」壓縮它,但它似乎只壓縮了這些流。整個PDF壓縮

我試過使用ObjStm,但它沒有很多來自其他文件讀取器的支持。我需要一些在Adobe之外有更多支持的東西。

任何建議表示讚賞!

+0

http://schnaader.info/precomp.php – Shelwien 2011-02-09 16:15:52

回答

2

在PDF你可以有兩種類型的壓縮:

  1. 流壓縮 - 數據使用多種方法壓縮,但PDF文件結構不被壓縮。
  2. 對象壓縮 - 您還壓縮文件結構,主要是不包含流的對象。

這些是PDF中唯一支持的壓縮方案。選擇正確的壓縮方法很大程度上取決於要壓縮的數據:對於頁面內容流,通常使用Flate壓縮,1bpp圖像使用CCITT G4或更好的JBIG2,彩色圖像使用JPEG2000等壓縮得更好。

對象壓縮可用於Acrobat 6.

1

您還可以查看是否可以減小數據的大小(即字體子集,圖像是否處於最佳dpi,文件是否包含死對象)。

1

查看PDF Specification,第7.5.7節(對象流)和7.5.8(交叉引用流)。

我認爲iText可以讀取和寫入這些文件,但我從來沒有這樣使用它,因爲結果顯然難以調試。可能有一個樣本PDF ......但我沒有看到任何。

我希望iText在行動第二版樣本涵蓋對象流,但沒有找到一個。