2010-07-19 99 views
6

我正在尋找一種方法來減少用Quartz生成的PDF大小。我在CGPDFContext中使用CGContextDrawImage繪製圖像。我害怕的是圖像保存爲位圖而不是JPEG。有沒有辦法來檢查這一點,並在編寫PDF時控制這種方式?減小用Quartz2D生成的PDF文件的大小

我也嘗試在將圖像寫入PDF上下文之前降低圖像的縮小比例,但最終我得到了更大的文件(儘管像素的頁面大小更小)。

謝謝!

+0

你能說出你正在繪製什麼樣的幾個特徵,圖像來自哪裏以及結果文件有多大?您是否將文件傳遞給外部PDF壓縮工具並查看了差異? – 2010-09-19 16:41:27

+0

圖像是相機圖像,以JPEG格式存儲,然後讀取到UIImage對象。所以我在CGPDFContext中畫一個UIImage.CGImage。對於單個頁面,文件大小例如爲1.2MB。如果我嘗試縮減比例,我會達到3 MB。使用壓縮工具(石英濾鏡),它更像500KB。 – Kamchatka 2010-09-19 21:17:10

+0

你能提供代碼嗎? – vikingosegundo 2010-09-21 01:35:05

回答

1

沒有用於設置CGPDFContext的圖像壓縮設置的公共API。

+0

我還嘗試了另一個可用壓縮設置的庫。模式看起來很相似:與PDF頁面的大小相比,圖像的大小並不重要。 – Kamchatka 2010-09-22 04:33:08

+0

也許嘗試減少你正在編寫的CGImage的顏色深度? 16位圖像的大小將減半_if CGPDFContext以其源格式存儲圖像 – rpetrich 2010-09-22 23:28:33

+0

我查看了該圖像,但找不到任何API來減少CGImage的深度。你會知道該怎麼做嗎? – Kamchatka 2010-09-23 05:54:27

0

我不是sur,如果你需要減少在iPhone的PDF或如果它是可以接受的在PC/Mac上減少它們。

在PC/Mac上,Adobe Acrobat Pro(商業產品不被誤認爲與ADOBE READER)具有PDF優化。菜單「Adavanced」>「PDF Optimizer ...」。這可以縮減圖像,字體等。因爲還有一個command-line interface (using AutoBatch)。這不便宜,但它可能是最好的PDF壓縮器。