pdf转图片引用依赖
<!--pdf转图片-->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
<scope>compile</scope>
</dependency>
代码
package com.base.cn.platform.os.common;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ChangePdfToImg {
public static void pdf2png(String fileAddress, String filename, int indexOfStart, int indexOfEnd) {
File file = new File(fileAddress + "\\" + filename + ".pdf");
try {
PDDocument doc = PDDocument.load(file);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = indexOfStart; i < indexOfEnd; i++) {
BufferedImage image = renderer.renderImageWithDPI(i, 144);
ImageIO.write(image, "PNG", new File(fileAddress + "\\" + filename + "_" + (i + 1) + ".png"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void pdf2png(String fileAddress, String filename) {
File file = new File(fileAddress + "\\" + filename + ".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, 144);
ImageIO.write(image, "PNG", new File(fileAddress + "\\" + filename + "_" + (i + 1) + ".png"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
int type=source.getType();
BufferedImage target=null;
double sx=(double)targetW/source.getWidth();
double sy=(double)targetH/source.getHeight();
if(sx>sy){
sx=sy;
targetW=(int)(sx*source.getWidth());
}else{
sy=sx;
targetH=(int)(sy*source.getHeight());