2011-06-21 185 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")); 
}