依赖
<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);
// 遍历每页pdf
for (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();
}
}