如何使用 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 IDEA 或 Eclipse(可选,但推荐)。
- 基本的 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 下载最新版本。按照以下步骤操作:
- 导航至下载页面。
- 选择您偏好的版本并下载。
- 将 JAR 文件包含在项目的构建路径中。
获取许可证
- 免费试用 – 免费探索核心功能。
- 临时许可证 – 延长评估期且无功能限制。
- 完整许可证 – 生产部署和高级选项所需。
如何使用 GroupDocs.Parser 提取所有 PDF 图像
加载 PDF,检索每个图像,并将输出写入 PNG。以下步骤假设您已配置有效许可证。解析器读取文档,识别每个光栅图形,并允许您指定输出文件夹和命名模式。它还支持受密码保护的 PDF,并可集成到批处理工作流中以实现高吞吐量处理。
直接答案
使用 PDF 路径创建 Parser 实例,调用 getImages() 获取 PageImageArea 对象的集合,然后遍历该集合,并使用设置为 ImageFormat.Png 的 ImageOptions 保存每个图像。此工作流在一次遍历中提取所有光栅图形,并将每个文件写入目标文件夹。
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 图像支持许多实际场景:
- 数字归档 – 自动从历史文档中收集视觉资产,用于可搜索的存储库。
- 内容再利用 – 将提取的 PNG 输入到网页画廊、营销手册或电子学习模块中。
- 数据分析 – 用从财务报告或科学论文中提取的视觉数据丰富分析流水线。
- 机器学习流水线 – 直接从 PDF 生成图像数据集,以训练计算机视觉模型。
- 企业 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