如何使用 GroupDocs.Parser 在 Java 中提取所有 PDF 图像

从 PDF 中提取图像对于数字归档、数据处理和内容再利用至关重要。在本教程中,您将学习如何使用 GroupDocs.Parser for Java 提取所有 PDF 图像 并将结果保存为 PNG 文件。该方法适用于单文件场景以及大规模批处理任务,为您提供一种可靠的方式来重复使用任何 PDF 中的视觉资产。

快速答案

  • 哪个库负责图像提取? GroupDocs.Parser for Java.
  • 教程将图像保存为何种格式? PNG(使用 ImageFormat.Png)。
  • 我可以一次处理多个 PDF 吗? 是的——将代码与循环结合以实现 批量 PDF 图像提取
  • 我需要许可证吗? 免费试用或临时许可证可用于测试;生产环境需要完整许可证。
  • 需要哪个 Java 版本? JDK 8 或更高。

什么是“提取所有 PDF 图像”?

提取所有 PDF 图像是指以编程方式定位 PDF 文件中嵌入的每个光栅图形,并将每个图形导出为单独的图像文件(例如 PNG、JPEG)。这使您能够在无需手动复制粘贴的情况下重复使用视觉资产,实现归档、分析和机器学习流水线的自动化。

为什么使用 GroupDocs.Parser for Java?

GroupDocs.Parser 在典型服务器上每秒处理 50+ PDF 页面,并且能够在不将整个文件加载到内存中的情况下处理高达 2 GB 的文档。该库提供高精度的光栅检测、低内存占用,并内置对 批量 PDF 图像提取 的支持,使其非常适合企业级工作流。

介绍

您是否曾需要从冗长的 PDF 中提取每张图像,却发现手动提取既繁琐又容易出错?使用 GroupDocs.Parser for Java,这项任务只需几行代码即可完成。本指南将带您完成库的安装、图像提取、保存为 PNG,以及将解决方案扩展至批处理。完成后,您将能够将图像提取集成到任何基于 Java 的后端或桌面工具中。

前提条件

  • GroupDocs.Parser for Java – 版本 25.5 或更高。
  • JDK 8 或更高版本已在您的开发机器上安装。
  • IDE,例如 IntelliJ IDEAEclipse(可选,但推荐)。
  • 基本的 Java 知识;熟悉 Maven 有帮助,但不是必需的。

设置 GroupDocs.Parser for Java

首先,通过 Maven 或直接下载 JAR 将库添加到项目中。

Maven 设置

在您的 pom.xml 文件中添加以下配置:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

直接下载

或者,直接从 GroupDocs.Parser for Java releases 下载最新版本。按照以下步骤操作:

  1. 导航至下载页面。
  2. 选择您偏好的版本并下载。
  3. 将 JAR 文件包含在项目的构建路径中。

获取许可证

  • 免费试用 – 免费探索核心功能。
  • 临时许可证 – 延长评估期且无功能限制。
  • 完整许可证 – 生产部署和高级选项所需。

如何使用 GroupDocs.Parser 提取所有 PDF 图像

加载 PDF,检索每个图像,并将输出写入 PNG。以下步骤假设您已配置有效许可证。解析器读取文档,识别每个光栅图形,并允许您指定输出文件夹和命名模式。它还支持受密码保护的 PDF,并可集成到批处理工作流中以实现高吞吐量处理。

直接答案

使用 PDF 路径创建 Parser 实例,调用 getImages() 获取 PageImageArea 对象的集合,然后遍历该集合,并使用设置为 ImageFormat.PngImageOptions 保存每个图像。此工作流在一次遍历中提取所有光栅图形,并将每个文件写入目标文件夹。

Parser 是表示 PDF 文档并提供其内容访问的主要类。

1️⃣ 初始化解析器

Parser 是在内存中表示 PDF 文档并提供其结构元素访问的核心类。

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
try (Parser parser = new Parser(filePath)) {
    // Use this parser object to extract images.
}

2️⃣ 提取图像

getImages() 返回 PDF 中找到的图像区域的可迭代集合。

Iterable<PageImageArea> images = parser.getImages();

3️⃣ 将图像保存为 PNG

ImageOptions 允许您为保存的图像指定输出设置,例如格式和分辨率。

ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
for (PageImageArea image : images) {
    String outputFilePath = "YOUR_OUTPUT_DIRECTORY/image" + imageNumber + ".png";
    image.save(outputFilePath, options);
    imageNumber++;
}

关键参数说明

  • filePath – 源 PDF 的绝对或相对路径。
  • ImageOptions & ImageFormat.Png – 指示解析器输出 PNG 文件,保持无损质量。
  • outputFilePath – 生成图像的文件夹和命名模式(例如 output/page_{page}_img_{index}.png)。

4️⃣ 批量 PDF 图像提取(可选)

将上述逻辑封装在遍历 PDF 文件路径列表的循环中。这使得 批量 PDF 图像提取 只需最少的代码更改即可实现,并在多核服务器上最大化吞吐量。

常见陷阱和故障排除技巧

  • 文件路径不正确 – 再次确认应用程序对源 PDF 有读取权限,对目标文件夹有写入权限。
  • 缺少许可证 – 没有有效许可证时,解析器会抛出 LicenseException
  • 受密码保护的 PDF – 在构造 Parser 对象时提供密码;否则提取将失败。
  • 大型文件的内存压力 – 使用 try‑with‑resources 确保及时关闭 Parser 实例,释放本机资源。

实际应用

提取所有 PDF 图像支持许多实际场景:

  1. 数字归档 – 自动从历史文档中收集视觉资产,用于可搜索的存储库。
  2. 内容再利用 – 将提取的 PNG 输入到网页画廊、营销手册或电子学习模块中。
  3. 数据分析 – 用从财务报告或科学论文中提取的视觉数据丰富分析流水线。
  4. 机器学习流水线 – 直接从 PDF 生成图像数据集,以训练计算机视觉模型。
  5. 企业 DMS 集成 – 为文档管理系统中的快速视觉搜索索引提取的图像。

性能考虑因素

在处理大型 PDF 或高容量批处理作业时,请牢记以下最佳实践:

  • 内存管理 – 在 try‑with‑resources 块中实例化 Parser,以确保确定性的清理。
  • 并行处理 – 使用 Java 的 ExecutorService 并发处理多个 PDF,充分利用 CPU 核心。
  • 图像格式选择 – PNG 提供无损质量;如果存储大小是重点,可切换为 JPEG(ImageFormat.Jpeg)。
  • I/O 缓冲 – 将图像写入快速 SSD 或网络附加存储,以避免瓶颈。

结论

在本教程中,您学习了如何使用 GroupDocs.Parser for Java 提取所有 PDF 图像,如何 将 PDF 图像保存为 PNG,以及如何将解决方案扩展至 批量 PDF 图像提取。该库抽象了底层 PDF 解析,使您能够专注于下游业务逻辑,如归档、分析或 AI 模型训练。

后续步骤

  • 尝试其他输出格式,如 JPEG 或 BMP。
  • 将提取逻辑封装在 REST 端点中,以实现按需处理。
  • 探索 GroupDocs.Parser 的其他功能,如文本提取、表格解析和元数据检索。

常见问题

Q: 什么是 GroupDocs.Parser for Java?
A: GroupDocs.Parser for Java 是一个库,能够以编程方式从超过 100 种文档格式(包括 PDF)中提取文本、元数据和光栅图形。

Q: 我可以从受密码保护的 PDF 中提取图像吗?
A: 可以——在创建 Parser 实例时提供文档密码,前提是您的许可证允许解密。

Q: 我应该如何处理非常大的 PDF 文件?
A: 使用 try‑with‑resources 及时释放解析器,批量处理文件,并考虑流式输出以避免将整个文档加载到内存中。

Q: 对图像数量或文件大小有何限制?
A: 该库支持多千兆字节的 PDF 和成千上万的图像;实际限制取决于服务器的 CPU、内存和存储吞吐量。

Q: 我在哪里可以找到更多资源或获取支持?
A: 查看 GroupDocs 文档 并加入 免费支持论坛 以获取社区帮助。


最后更新: 2026-08-05
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs

相关教程