用org.apache.pdfbox 转换 PDF 到 图片格式

发布于:2025-07-24 ⋅ 阅读:(12) ⋅ 点赞:(0)

依赖

		<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();
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到