首页 > 编程语言 >如何通过Java提取PDF中的图片

如何通过Java提取PDF中的图片

时间:2022-12-22 11:31:19浏览次数:63  
标签:文件 提取 PdfDocument Java 文档 import PDF

PDF文档格式具有固定的文档布局,可以避免他人对其进行随意更改。但这也在一定程度上影响了我们对PDF的操作,例如,当我们需要将PDF文档中的图片用于其他地方时。​Free Spire.PDF for Java​可以帮助我们通过Java语言提取PDF文档中的图片。下面是详细操作步骤和代码。


安装Spire.XLS.Jar

方法一:

如果您使用的是maven,可以通过添加以下代码到项目的pom.xml文件中,将 JAR文件导入到应用程序中。

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>

方法二:

如果您没有使用maven,则可以从​此链接​下载Free Spire.XLS for Java,下载完成后,将下载包进行解压;然后在IDEA中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR文件或路径”(JARs or Directories),找到之前解压好的文件,并将其中的lib文件夹下的Spire.XLS.jar文件导入到项目中。

从PDF 文档中提取图像

  • 创建一个PdfDocument实例并使用 PdfDocument.loadFromFile() 方法加载 PDF 示例文档。
  • 遍历文档的所有页面,并使用PdfPageBase.extractImages()方法从给定页面中提取图像。
  • 指定输出文档的路径和名称。
  • 将图像另存为.png文件。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ExtractImage {
public static void main(String[] args) throws IOException {
//创建一个 PdfDocument 实例
PdfDocument doc = new PdfDocument();

//加载 PDF 示例文档
doc.loadFromFile("sample.pdf");

//定义一个变量
int index = 0;

//遍历所有页面
for (PdfPageBase page : (Iterable<PdfPageBase>) doc.getPages()) {

//从所给页面提取图片
for (BufferedImage image : page.extractImages()) {

//指定输出文档的路径和名称
File output = new File("C:\\Users\\Administrator\\Desktop\\output\\" + String.format("Image_%d.png", index++));

//将图像另存为.png文件
ImageIO.write(image, "PNG", output);
}
}
}
}

如何通过Java提取PDF中的图片_Image

标签:文件,提取,PdfDocument,Java,文档,import,PDF
From: https://blog.51cto.com/u_15711850/5962464

相关文章

  • 如何通过Java提取PDF中的图片
    PDF文档格式具有固定的文档布局,可以避免他人对其进行随意更改。但这也在一定程度上影响了我们对PDF的操作,例如,当我们需要将PDF文档中的图片用于其他地方时。FreeSpire.PDF......
  • jmeter关联之正则表达式提取器的用法-软件测试知识
    如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参......
  • java 查看对象占用内存大小(代码库)
    <dependency><groupId>com.carrotsearch</groupId><artifactId>java-sizeof</artifactId><version>0.0.5</version></dependency>importcom.carrotse......
  • Java学习笔记5
    1.方法概述概念​ 方法(method)是程序中最小的执行单元。注意:方法必须先创建才可以使用,该过程称为方法的定义。方法创建后并不是直接可以运行的,进行方法的调用才会执......
  • PDF页面大小不一样,怎样调整一致?
    PDF尺寸如何修改?PDF是Abode公司旗下开发用于跨平台支持多媒体集成信息的出版和发布,尤其是提供对网络信息发布支持的文档格式。使用PDF文档时,可能会遇到文档的纸张大小不一......
  • 多个NX版本实现java调用
    设置环境变量只能实现一个NX版本的调用如果一台电脑上有几个NX版本就要把环境变量删了单独去设置 找到安装各个NX版本安装目录下的ugii文件夹里的ugii_env.dat文件#NX......
  • 教你用Java实现动态调色板
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用Java编程实战案例,做一个动态调色板。案例界面会出现三个滑动组块以及对应的数值,通过移动滑块可以......
  • Java 中 int 和 Integer 的区别,为什么要有包装类?
    前言Java是一门强类型语言,所以在Java中,所有的数据都必须有自己的数据类型,这就像“山姆商店”的会员制一样,你是会员才能进入,在Java中也是如此,每一个数据必须有自己的......
  • MyEclipse技术全面解析——不脱离Java IDE的Maven项目管理
    从JavaIDE内部管理项目和构建,标准的项目结构、简化的POM编辑和内置于MyEclipse菜单中的启动命令使Maven项目管理触手可及。MyEclipsev2022.1.0正式版下载通过单击管理M......
  • JavaSE-day04-基本概念-数据类型&标识符&键盘录入
    Java基本概念本章包含数据类型,标识符以及键盘录入!数据类型数据类型的分类1.基本数据类型Java中基本数据类型分为4类8种。1.整数:byte,short,int,long细节:整数的......