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转出来的图片像素会比较高,可以根据实际情况调整。

相关推荐
我不是疯子是傻子5 分钟前
Qt 实时曲线卡顿优化:从QPainter到OpenGL的3级加速实战
开发语言·qt
zlinear数据采集卡6 分钟前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
百事牛科技1 小时前
办公文档防护:如何限制 PDF 转换成其他格式文件
windows·pdf
nnerddboy1 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
Rain的Java大神之路1 小时前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
jerryinwuhan1 小时前
《Python数据预处理》第四章
开发语言·python
长江&后浪1 小时前
防火墙的描述
开发语言·网络·php
counting money1 小时前
Tomcat 专题:从基础架构到性能调优与 WebSocket 实战
java·websocket·tomcat
2601_965912832 小时前
520MB卷宗合并压缩踩坑实录:PDF文档归档场景的技术选型与性能对比
pdf
观无2 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript