提取 PDF 图像 Java – 使用 GroupDocs 将 PDF 图像保存为 PNG
在现代以文档为中心的工作流中,extract images pdf java 是一种常见需求,可帮助您免去手动打开 PDF 复制图片的步骤。无论您需要从目录中获取产品照片、从合同中获取徽标,还是从报告中获取截图,使用 Java 和 GroupDocs.Parser 自动化提取都能在几秒钟内提取所有嵌入的光栅图像。本指南将指导您安装库、从 PDF(以及其他格式)中提取图像,以及 saving images as PNG 文件,以便后续处理。
快速答案
- “extract images from PDF” 是什么意思? 它是以编程方式读取 PDF 并提取所有嵌入的光栅图像的过程。
- 哪个库在 Java 中处理此功能? GroupDocs.Parser for Java 提供了一个简单的 API,可在多种文档类型中进行图像提取。
- 我可以将提取的文件保存为 PNG 吗? 是的 – 在调用
image.save()时使用ImageOptions(ImageFormat.Png)。 - 我需要许可证吗? 免费试用可用于开发;生产环境需要商业许可证。
- 可以从 Word、Excel 或 ZIP 文件中提取图像吗? 当然可以 – 相同的
parser.getImages()调用同样适用于这些格式。
什么是 extract images pdf java?
Extract images pdf java 指的是以编程方式定位 PDF 文档中嵌入的每个光栅图像对象并获取其二进制数据,以便您能够在不手动打开文件的情况下重新使用、分析或归档这些图片。此过程通常包括解析 PDF 结构、提取图像流,并将其写入选定格式(如 PNG)的单独图像文件。
为什么使用 GroupDocs.Parser 从 PDF 中提取图像?
GroupDocs.Parser 能在典型的 8 核服务器上 在 5 秒内处理高达 500 页的 PDF,并且支持 50 多种输入格式,包括 DOCX、XLSX、PPTX 和 ZIP 压缩包。其本地代码引擎保持低内存使用,使您能够在不将整个文档加载到内存中的情况下处理数百页的文件。您还可以完全控制输出格式、文件命名和批处理。
前提条件
- Java Development Kit (JDK) 8 或更高版本。
- 对 Java I/O 和异常处理有基本了解。
- Maven 或能够向项目添加外部 JAR 的能力。
必需的库和依赖
要在 Java 中使用 GroupDocs.Parser,请通过 Maven 或直接下载库将其包含在项目中。
环境设置要求
确保您的 IDE(IntelliJ IDEA、Eclipse、VS Code)已配置 JDK 和 Maven(如果选择 Maven 方式)。
知识前提
了解文件流、try‑with‑resources 以及基本的面向对象 Java 将使实现更加顺畅。
为 Java 设置 GroupDocs.Parser
要使用 GroupDocs.Parser,请通过 Maven 将其添加到项目中,或从官方发布页面下载库。
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 下载最新版本。
有关完整指南,请参阅 GroupDocs Documentation。
许可证获取
通过下载库开始免费试用。若需长期使用,请考虑购买许可证或从 GroupDocs 获取临时许可证。
基本初始化和设置
Parser 类是 GroupDocs.Parser 中所有文档解析操作的入口。您通过将文件路径(以及可选的密码)传递给其构造函数来创建实例。
import com.groupdocs.parser.Parser;
public class InitializeParser {
public static void main(String[] args) {
// Initialize the Parser object with a document path
try (Parser parser = new Parser("path/to/your/document")) {
System.out.println("Parser initialized successfully.");
} catch (Exception e) {
System.err.println("Error initializing parser: " + e.getMessage());
}
}
}
如何使用 GroupDocs.Parser 从 PDF 中提取图像
使用 new Parser("yourFile.pdf") 加载文档并调用 parser.getImages() —— 该调用将返回您提供的 PDF、Word、Excel 或 ZIP 文件中所有嵌入的光栅图像的集合。
实现指南
我们将把实现分解为逻辑章节,以便您清晰地跟随每一步。
功能 1:从文档中提取图像
此功能演示如何使用 GroupDocs.Parser for Java 提取图像。
概述
您将创建一个方法,从指定文档中提取所有图像,并检查给定格式是否支持图像提取。
实现步骤
步骤 1:设置解析器
使用您的文档路径初始化 Parser 对象:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;
public class ExtractImagesFeature {
public static void extractImages() throws UnsupportedDocumentFormatException, IOException {
String documentPath = "YOUR_DOCUMENT_DIRECTORY/document.zip";
try (Parser parser = new Parser(documentPath)) {
Iterable<PageImageArea> images = parser.getImages();
if (images == null) {
throw new UnsupportedDocumentFormatException("Page images extraction isn't supported.");
}
}
}
}
说明
parser.getImages()提取文档中的每个图像区域,无论是 PDF、Word、Excel,甚至是包含受支持文件的 ZIP 压缩包。- 错误处理:如果格式不支持图像提取,方法会抛出
UnsupportedDocumentFormatException,从而让您优雅地回退。
功能 2:将提取的图像保存为文件
获取图像对象后,下一步是将它们写入磁盘为 PNG 文件。
概述
您将遍历每个提取的图像,并使用 ImageOptions 类将其保存为 PNG 文件。
ImageOptions 指定保存图像的输出格式和编码设置。
ImageFormat.Png 是选择 PNG 图像格式的枚举值。
实现步骤
步骤 1:保存每个图像
遍历图像并保存它们:
import com.groupdocs.parser.data.PageImageArea;
import com.groupdocs.parser.options.ImageOptions;
import com.groupdocs.parser.options.ImageFormat;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class SaveImagesFeature {
public static void saveExtractedImages(Iterable<PageImageArea> images) throws IOException {
String outputPath = "YOUR_OUTPUT_DIRECTORY/";
int imageNumber = 0;
ImageOptions options = new ImageOptions(ImageFormat.Png);
for (PageImageArea image : images) {
String outputFilePath = outputPath + String.format("%d.png", imageNumber++);
try (OutputStream outputStream = new FileOutputStream(outputFilePath)) {
image.save(outputStream, options);
}
}
}
}
说明
ImageOptions(ImageFormat.Png)指定 PNG 格式,属于无损格式,非常适合需要精确保真的截图或图形。image.save()使用提供的输出流将每个图像写入文件系统,为提升性能复用同一个ImageOptions实例。
故障排除提示
- 确认 document path 指向现有文件且应用程序具有读取权限。
- 确保 output directory 存在且进程具有写入权限。
- 对于非常大的 PDF,考虑分批处理页面以保持低内存使用。
如何将图像保存为 PNG
加载文档,提取图像,并调用 image.save(outputStream, new ImageOptions(ImageFormat.Png)) —— 这一行代码将每个光栅图像写入 PNG 文件,同时保留其原始分辨率和色彩深度。
从 Word、Excel 和 ZIP 文件中提取图像
GroupDocs.Parser 的 getImages() 适用于多种格式:
- Word (
.docx) – 提取嵌入的图片和绘图。 - Excel (
.xlsx) – 提取图表和插入的图片。 - ZIP – 如果压缩包包含受支持的文档,解析器将处理每个条目并返回其图像。
只需将 documentPath 变量替换为您的 .docx、.xlsx 或 .zip 文件的路径,即可复用相同的提取和保存逻辑。
实际应用
GroupDocs.Parser 可集成到各种系统中,提升功能:
- 自动化文档处理 – 从发票或合同中提取图像以实现自动数据录入。
- 归档系统 – 将文档图像集中存储,以便快速可视化检索。
- 内容管理系统 (CMS) – 自动从上传的文档中提取媒体资源。
性能考虑
在处理大批量时保持 Java 应用响应性:
- 及时关闭流,使用 try‑with‑resources(如示例所示)。
- 复用
ImageOptions,而不是为每个图像创建新实例。 - 顺序处理文档或使用受控线程池,以避免内存峰值。
- GroupDocs.Parser 能在 4 秒以内 从 300 页的 PDF 中提取图像,且堆内存使用低于 200 MB。
结论
在本教程中,您学习了如何为 Java 设置 GroupDocs.Parser,extract images pdf java,以及 save images as PNG 文件。此功能可以显著加速任何基于 Java 的文档中心工作流。
下一步
浏览 GroupDocs documentation 以发现文本提取、表格解析和 OCR 支持等其他功能。有关详细的方法签名,请参阅 API Reference。
行动号召
立即在项目中实现这些代码片段——您的自动化图像提取流水线只需几行代码即可实现!
常见问题
Q: GroupDocs.Parser 支持哪些格式的图像提取?
A: PDF、Word (.docx)、Excel (.xlsx)、PowerPoint、包含受支持文件的 ZIP 压缩包,以及更多。
Q: 我可以从受密码保护的 PDF 中提取图像吗?
A: 可以。在构造 Parser 对象时提供密码。
Q: 我应该如何处理非常大的文档?
A: 按页处理,批次完成后释放资源,并在需要时考虑增大 JVM 堆大小。
Q: 除了图像,还能提取其他数据类型吗?
A: 当然可以。GroupDocs.Parser 还能提取文本、表格和元数据。
Q: 如果某个文件不支持图像提取怎么办?
A: API 会抛出 UnsupportedDocumentFormatException;您可以捕获该异常并回退到其他策略(例如先转换文件)。
最后更新: 2026-08-10
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs