2013-02-28 48 views
2

我正在使用itext PDF庫在Java中構建非常圖像密集型的PDF文檔。每個頁面上都有十幾張圖片。原始的源圖像是非常高的分辨率,我使用scaleToFit來渲染圖像到我需要的大小。減小ITextPDF中的圖像大小(字節數)

我遇到的問題是PDF文檔仍然很大。我的理解是,整個原始高分辨率圖像都包含在內,我使用的縮放比例僅影響實際渲染,而不影響文件中包含的圖像大小。

我已通過刪除縮放來驗證此問題 - 頁面呈現的高分辨率圖像彼此重疊並且頁面邊緣的大小與PDF縮放時的大小相同。

所以,這裏的問題 - 我怎樣才能縮小每個圖像縮小PDF文件的大小?如果我失去了一點點的圖像質量沒關係。手動縮放源圖像將很困難。

回答

8

所以我找到了一個辦法。我現在將圖像加載到BufferedImage中,然後使用此處的提示進行縮放:how do I scale a BufferedImage

這給了我BufferedImage - 我然後使用

 Image returnedImage = Image.getInstance (pcb, bufferedImage, quality); 

哪裏quality目前0.6轉換爲iText的圖像這一點。這對我正在做的工作是可以接受的。

+0

FWIW,使用這種技術,我的測試文件已經從29MB變爲3MB。 – Andrew 2013-02-28 07:56:37

+0

已投票回答。另外:即使你自己回答了這個問題,接受好答案也是很好的做法。 – 2013-02-28 16:26:55

+0

我試圖做到這一點,但它說我必須等待2天,直到我能回答自己的問題。現在回來並完成。 – Andrew 2013-03-06 23:25:42