Apache PDFBox将PDF转换为图像
有人可以给我一个例子,如何使用Apache PDFBox来转换不同的图像(pdf每个页面的一个pdf)的PDF。 提前致谢
1.8。*版本的解决scheme:
PDDocument document = PDDocument.loadNonSeq(new File(pdfFilename), null); List<PDPage> pdPages = document.getDocumentCatalog().getAllPages(); int page = 0; for (PDPage pdPage : pdPages) { ++page; BufferedImage bim = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB, 300); ImageIOUtil.writeImage(bim, pdfFilename + "-" + page + ".png", 300); } document.close();
在构build之前,不要忘记阅读1.8依赖页面 。
2.0版本的解决scheme:
PDDocument document = PDDocument.load(new File(pdfFilename)); PDFRenderer pdfRenderer = new PDFRenderer(document); for (int page = 0; page < document.getNumberOfPages(); ++page) { BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB); // suffix in filename will be used as the file format ImageIOUtil.writeImage(bim, pdfFilename + "-" + (page+1) + ".png", 300); } document.close();
ImageIOUtil类是单独的下载/工件(pdf-tools)。 在构build之前阅读2.0依赖页面 ,您将需要额外的jar文件来处理jbig2图像的PDF文件,保存到tiff图像以及读取encryption文件。
如果您使用的是JDK8,请设置-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider
,否则会非常慢。
没有任何额外的依赖关系,您可以使用PDFBox
已经包含的PDFToImage
类。
科特林:
PDFToImage.main(arrayOf<String>("-outputPrefix", "newImgFilenamePrefix", existingPdfFilename))
其他configurationselect: https : //pdfbox.apache.org/docs/2.0.8/javadocs/org/apache/pdfbox/tools/PDFToImage.html