Springboot使用pdfbox提取PDF图片

Springboot使用pdfbox提取PDF图片

  • PDFBox的介绍
  • Springboot集成PDFBox
  • 一、提取pdf首页为图像
    • 1. 实现需求
    • 2. 项目代码
    • 3. 执行结果
  • 二、将pdf内容全部转换为图像
    • 1. 实现需求
    • 2. 项目代码
    • 3. 执行结果
    • 4.注意事项
      • 1.优化项目代码
      • 2.提升Java heap size

PDFBox的介绍

PDFBox是一个用于创建和处理PDF文档的Java库。它可以使用Java代码创建、读取、修改和提取PDF文档中的内容。

PDFBox的功能:

  • Extract Text - 使用PDFBox,您可以从PDF文件中提取Unicode文本。

  • Split & Merge - 使用PDFBox,您可以将单个PDF文件分成多个文件,并将它们合并为一个文件。

  • Fill Forms - 使用PDFBox,您可以在文档中填写表单数据。

  • Print - 使用PDFBox,您可以使用标准Java打印API打印PDF文件。

  • Save as Image - 使用PDFBox,您可以将PDF保存为图像文件,如PNG或JPEG。

  • Create PDFs - 使用PDFBox,您可以通过创建Java程序创建新的PDF文件,还可以包含图像和字体。

  • Signing - 使用PDFBox,您可以将数字签名添加到PDF文件。

Springboot集成PDFBox

本项目除了引入pdfbox的依赖之外,还引入了解决图像问题的其他依赖。
例如:jai-imageio-jpeg2000jai-imageio-core是为了解决在转换图像时报错:Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed

jbig2-imageio依赖引入是为了解决使用pdfbox2.0将PDF转换为图片时后台报Cannot read JBIG2 image: jbig2-imageio is not installed错误

<!-- pdf提取封面依赖-->
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.22</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox-tools</artifactId>
    <version>2.0.22</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>jbig2-imageio</artifactId>
    <version>3.0.2</version>
</dependency>
<!-- 解決提取pdf "Cannot read JPEG2000 image"封面失败问题 -->
<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-core</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-jpeg2000</artifactId>
    <version>1.3.0</version>
</dependency>

一、提取pdf首页为图像

1. 实现需求

单个或者批量提取pdf的首页作为封面,或者可以实现提取指定pdf页为图像

2. 项目代码

核心工具类方法:PdfUtils.getPdfFirstImage

package com.zhouquan.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
imp
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐州蔡徐坤

又要到饭了兄弟们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值