Java中PDF文件转换为PNG图片
工程需要
需要jar包:fontbox-2.0.2.jar pdfbox-2.0.2.jar
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.2</version>
</dependency>
测试
package cn.abucc.Test;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class PDFToPNG {
public static void main(String[] args) {
File file = new File("F:\\2\\3210188d-3774-479e-80f6-79c4e7c20bb0.pdf");
String PngName=file.getName().replaceAll(".pdf", "");
if(file.exists()&&!new File("/img/"+PngName+"0.png").exists()){
try {
PDDocument doc = PDDocument.load(file);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
// 方式1,第二个参数是设置缩放比(即像素)
//BufferedImage image = renderer.renderImageWithDPI(i, 296);
// 方式2,第二个参数是设置缩放比(即像素)
BufferedImage image = renderer.renderImage(i, 2.5f);
System.out.println("正在转换第"+i+"图片");
ImageIO.write(image, "PNG", new File("F://"+PngName+i+".png"));
}
} catch (IOException e) {
e.printStackTrace();
}finally {
System.out.println("转换完成!");
}
}else{
System.out.println("PDF图片不存在或者已转化");
}
}
}