2011-06-21 217 views
0

我需要將任何多頁PDF文件轉換爲一組JPG格式。使用iText或其他格式將PDF轉換爲多個JPG

由於PDF文件是假設來自掃描儀,我們可以假設每個頁面只包含一個圖形對象來提取,但我不能100%確定。

所以,我需要將來自每個頁面的任何可呈現內容轉換爲單個JPEG文件。

我該怎麼用iText來做到這一點?

如果我不能用iText來做這件事,那麼Java庫可以做到這一點?

謝謝。

+0

這個術語是。一個PDF渲染器。是調用一個本地程序的一個選項?如果是的話,什麼平臺? –

+0

不確定。但它必須在Windows(開發)和Linux(測試和生產) –

回答

1

ICEpdf - http://www.icepdf.org/ - 有一個開源的入門版本,應該做你需要的。

我相信開源版本和付費版本之間的主要區別在於,支付方式有更好的字體支持。

+0

似乎可行。至少主頁廣告這個功能。你知道JPEG渲染是否有快速入門,所以我們可以做出原始的概念證明,以便請求將該包正式導入到項目中? (我討厭burocracy但是「dura lex sed lex」) –

+0

我回頭看了一下這個項目,但是我們走了一條不同的路,所以我沒有第一手的經驗。我建議註冊並下載他們的東西,看他們的網頁上列出的任何演示(渲染圖像)是否包括在內。 –

1

您還可以使用Sun公司的PDF格式,渲染和JPedal確實PDF圖像(低和高清晰度。

+0

謝謝,但我只是嘗試IcePdf,它的工作;)+1無論如何 –

2

Ghostscript的(適用於Windows,Linux和MacOS X系統,Solaris和AIX,...)可以轉換。 ..

  • ...從輸入格式:PDF,的PostScript,EPS和AI
  • ...到輸出格式:JPEG,TIFF,PNG,PNM,PPM,BMP,(及以上)

(ImageMagick提到上面並沒有做轉換自身 - 它使用Ghostscript的引擎蓋下,像許多其他工具)

+0

iText在測試中使用Ghostscript和ImageMagick。 Ghostscript將PDF轉換成PNG文件,然後ImageMagick來比較PNG文件。查看iText源代碼中的CompareTool類以獲取更多信息。 –

1

與Apache PDFBox的,你可以做到以下幾點:

PDDocument document = PDDocument.load(pdffile); 
List<PDPage> pages = document.getDocumentCatalog().getAllPages(); 
for (int i = 0; i < pages.size(); i++) { 
    PDPage page = pages.get(i); 
    BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_RGB, 72); 
    ImageIO.write(image, "jpg", new File(pdffile.getAbsolutePath() + "_" + i + ".jpg")); 
}