Java将PDF保存为图片

将 PDF 文件转换为图片是常见的需求之一,特别是在需要将 PDF 内容以图像形式展示或处理时。其中最常用的是 Apache PDFBox。

使用 Apache PDFBox

Apache PDFBox 是一个开源的 Java 库,可以用来处理 PDF 文档。它提供了将 PDF 页面转换为图像的功能。

步骤:

1.添加依赖

在你的 pom.xml 文件中添加 PDFBox 的依赖:

XML 复制代码
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>

2.编写转换代码

java 复制代码
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 PdfToImageConverter {

    public static void main(String[] args) {
        String pdfPath = "path/to/your/file.pdf";
        String outputDir = "path/to/output/directory";

        try (PDDocument document = PDDocument.load(new File(pdfPath))) {
            PDFRenderer pdfRenderer = new PDFRenderer(document);
            for (int page = 0; page < document.getNumberOfPages(); ++page) {
                BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300); // 300 DPI
                ImageIO.write(bim, "PNG", new File(outputDir, String.format("page_%s.png", page + 1)));
            }
            System.out.println("PDF to image conversion completed successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

300DPI转出来的图片像素会比较高,可以根据实际情况调整。

相关推荐
纪莫1 天前
A公司一面:类加载的过程是怎么样的? 双亲委派的优点和缺点? 产生fullGC的情况有哪些? spring的动态代理有哪些?区别是什么? 如何排查CPU使用率过高?
java·java面试⑧股
JavaGuide1 天前
JDK 25(长期支持版) 发布,新特性解读!
java·后端
用户3721574261351 天前
Java 轻松批量替换 Word 文档文字内容
java
白鲸开源1 天前
教你数分钟内创建并运行一个 DolphinScheduler Workflow!
java
Java中文社群1 天前
有点意思!Java8后最有用新特性排行榜!
java·后端·面试
代码匠心1 天前
从零开始学Flink:数据源
java·大数据·后端·flink
间彧1 天前
Spring Boot项目中如何自定义线程池
java
间彧1 天前
Java线程池详解与实战指南
java
用户298698530141 天前
Java 使用 Spire.PDF 将PDF文档转换为Word格式
java·后端
渣哥1 天前
ConcurrentHashMap 1.7 vs 1.8:分段锁到 CAS+红黑树的演进与性能差异
java