Java代码如何将PDF转换为图片呢?
下文笔者讲述将PDF文件转换为图片的方法分享,如下所示
PDF转图片的实现思路
方式1: 借助icepdf.jar 方式2: 借助pdfbox.jar包 方式3: 借助jpedal.jar包
icepdf简介
//导入相应的jar包 icepdf-core.jar icepdf-pro.jar icepdf-pro-intl.jar icepdf-viewer.jar例:
String filePath = "d:/test.pdf"; Document document = new Document(); document.setFile(filePath); float scale = 2.5f;//缩放比例 float rotation = 0f;//旋转角度 for (int i = 0; i < document.getNumberOfPages(); i++) { BufferedImage image = (BufferedImage) document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale); RenderedImage rendImage = image; try { File file = new File("d:/testPDF_" + i + ".png"); ImageIO.write(rendImage, "png", file); } catch (IOException e) { e.printStackTrace(); } image.flush(); } document.dispose();
pdfbox
maven 导入相应jar包 <!--pdf转图片--> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>3.0.0-alpha2</version> </dependency> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>fontbox</artifactId> <version>3.0.0-alpha2</version> </dependency>例
File file = new File("d:\\test.pdf"); try { PDDocument doc = PDDocument.load(file); PDFRenderer renderer = new PDFRenderer(doc); int pageCount = doc.getNumberOfPages(); for(int i=0;i<pageCount;i++){ BufferedImage image = renderer.renderImageWithDPI(i, 296); // BufferedImage image = renderer.renderImage(i, 2.5f); ImageIO.write(image, "PNG", new File("D:\\pdfbox_image.png")); } } catch (IOException e) { e.printStackTrace(); }
jpedal
下载jar包 jpedal_lgpl.jar
PdfDecoder decode_pdf = new PdfDecoder(true); try { decode_pdf.openPdfFile("D:\\test.pdf"); //file // decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file // decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF // decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false); // decode_pdf.openPdfFileFromInputStream(in, false); int start = 1, end = decode_pdf.getPageCount(); for(int i = start; i < end+1; i++){ BufferedImage img=decode_pdf.getPageAsImage(i); try { ImageIO.write(img, "png", new File("D:\\jpedal_image.png")); } catch (IOException e) { e.printStackTrace(); } } decode_pdf.closePdfFile(); } catch (PdfException e) { e.printStackTrace(); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。