当前位置: 首页 > article >正文

Java将PDF保存为图片

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

使用 Apache PDFBox

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

步骤:

1.添加依赖

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

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>

 2.编写转换代码

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


http://www.kler.cn/a/406758.html

相关文章:

  • 【H2O2|全栈】JS进阶知识(八)ES6(4)
  • socket连接封装
  • 昆明理工大学《2023年+2021年816自动控制原理真题》 (完整版)
  • Kubernetes:容器编排的强力
  • SpringBoot中使用Sharding-JDBC实战(实战+版本兼容+Bug解决)
  • 个人笔记本安装CUDA并配合Pytorch使用NVIDIA GPU训练神经网络的计算以及CPUvsGPU计算时间的测试代码
  • Android adb shell dumpsys audio 信息查看分析详解
  • 企业OA管理系统:Spring Boot技术深度探索
  • PTC在电池中的作用
  • 万有引力定律和库仑定律:自然的对称诗篇
  • Android opencv使用Core.hconcat 进行图像拼接
  • 《筑牢安全防线:培养 C++安全编程思维习惯之道》
  • 什么是 C++ 中的模板特化和偏特化?如何进行模板特化和偏特化?
  • Python编程技巧:多变量赋值的优雅艺术
  • 躺平成长-腾讯云数据库(又消失了一次)
  • 打造极致网页体验:HTML与CSS高级实战秘籍
  • 利用Docker容器技术部署发布web应用程序
  • Playwright(Java版) - 7: Playwright 页面对象模型(POM)
  • Vue 是如何实现数据双向绑定的?
  • logstash 解析数组格式json数据:split, json