2012-10-17 105 views
3

有一個pdf文件,我想將第二頁作爲圖像導入並保存爲jpeg文件。 它可能和如何做到這一點?從pdf獲取頁面並將其保存爲帶有itext的圖像文件

這是我的代碼如何導入頁面:

Document document = new Document(); 
File file = File.createTempFile("", ""); 
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file)); 
document.open(); 

final int backPage = 2; 
PdfReader reader = new PdfReader(pdf.getAbsolutePath()); 
PdfImportedPage importedPage = writer.getImportedPage(reader, backPage); 
com.lowagie.text.Image image = com.lowagie.text.Image.getInstance(importedPage); 

現在,我得到一個image實例,但我不知道如何將其寫入到一個JPEG文件。

+1

[將PDF頁導出到一系列Java圖像](http://stackoverflow.com/questions/550129/export-pdf-pages-to-a-series-of-images-in-java ) –

回答

2

顯然(根據1T3XT BVBA),您只能保存PDF頁面中的iText圖像,而不是柵格圖像。 您可以將它無處不在,如果您稍後將使用將它放入另一個PDF頁面...否則,你將不得不使用像JPedal工具:

http://www.idrsolutions.com/convert-pdf-to-images/

====== =============================

編輯:也許PDFBox的能爲你做到這一點!:

http://pdfbox.apache.org/commandlineutilities/PDFToImage.html

http://gal-levinsky.blogspot.it/2011/11/convert-pdf-to-image-via-pdfbox.html

+0

謝謝,但遺憾的是JPedal不是免費的,而且非常昂貴。 – Freewind

+0

同意。另一種方法是從您的應用程序運行許多免費軟件命令行轉換器(例如Unix)中的一個來執行文件系統上的工作,然後獲取生成的文件(s)......但它不是純java ,在這個過程中很多事情可能會出錯...... –

+0

我會在稍後嘗試pdfbox。由於它不支持中文字符,所以我不確定它是否能生成正確的圖像。 – Freewind

4

Image.getInstance(importedPage)沒有(正如人們可能假設的那樣)將所表示的頁面渲染爲某個位圖,而只是創建一個包裝器對象以使導入的頁面更容易添加到另一個PDF。

iText不是PDF渲染工具,特別是不是舊的com.lowagie變體。您可能需要查看不同的產品,例如JPedal

+0

鏈接斷了!當前鏈接是https://www.idrsolutions.com/jpedal/ – gordon613

相關問題