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();
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


