用org.apache.pdfbox 转换 PDF 到 图片格式
依赖
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.9</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/libs/pdfbox-2.0.9.jar</systemPath></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.9</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/libs/fontbox-2.0.9.jar</systemPath></dependency>
依赖下载地址
https://maven.aliyun.com/mvn/search
代码
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;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class Pdf2Img
{public static void main(String[] args) throws IOException{String filePath="D:\\ttttt\\test.pdf";// 加载pdf文件// 2.x版本的pdfbox写法PDDocument doc = PDDocument.load(new File(filePath));PDFRenderer renderer = new PDFRenderer(doc);// 遍历每页pdffor (int i = 0; i < doc.getNumberOfPages(); i++){// dpi调到300左右即可,太小会模糊,太大会使图片变得很大BufferedImage image = renderer.renderImageWithDPI(i, 300);Path path = Paths.get("data_" + i + ".jpg");System.out.println(path.toAbsolutePath());ImageIO.write(image, "jpg", Files.newOutputStream(path));}doc.close();}
}