如何使用 GroupDocs.Parser 在 Java 中解析 PDF
在当今数据驱动的世界中,高效 解析 PDF 文件可以极大提升生产力。无论是自动化发票处理、数字化记录,还是从 PDF 报告中提取文本,合适的库都能为您节省时间并减少错误。在本指南中,您将学习如何在 Java 中使用 GroupDocs.Parser 解析 PDF 文档,定义模板字段,创建文档模板,并自信地从 PDF 文件中提取数据。
快速答案
- GroupDocs.Parser 的主要用途是什么? 从 PDF、DOCX 和其他文档格式中提取结构化数据。
- 我可以在没有模板的情况下提取 PDF 数据吗? 可以,但使用模板可以提高固定布局文档的准确性。
- 我需要许可证才能试用吗? 可以获取免费试用或临时许可证进行评估。
- 需要哪个 Java 版本? Java 8 或更高版本;该库兼容 JDK 11、17 等。
- Maven 是唯一添加该库的方式吗? 不是,您也可以直接从官方仓库下载 JAR。
使用 GroupDocs.Parser 进行 PDF 解析是什么?
解析 PDF 意味着读取文件的内部结构并提取所需的信息——文本、表格或特定字段——以便您的应用程序能够以编程方式使用它们。
为什么使用 GroupDocs.Parser 进行 PDF 解析?
- 高精度,使用固定位置的模板字段。
- 支持多种格式,不仅限于 PDF(如 DOCX、XLSX 等)。
- 易于集成,通过 Maven 或直接下载 JAR。
- 强大的错误处理,针对不受支持的格式。
前置条件
在开始之前,请确保您具备以下条件:
- GroupDocs.Parser 版本 25.5 或更高。
- 已安装 Java Development Kit (JDK) 8 或更高版本。
- IDE,例如 IntelliJ IDEA 或 Eclipse。
- 用于依赖管理的 Maven(可选,但推荐)。
必需的库
- GroupDocs.Parser 版本 25.5 或更高。
- 确保在您的机器上已安装 Java Development Kit (JDK)。
环境设置要求
- Java 集成开发环境(IDE),如 IntelliJ IDEA 或 Eclipse。
- 用于依赖管理的 Maven(可选,但推荐)。
知识前提
- 对 Java 编程概念的基本了解。
- 熟悉 PDF 文档结构和模板字段。
为 Java 设置 GroupDocs.Parser
要在 Java 项目中开始使用 GroupDocs.Parser,您需要将该库添加到构建配置中。
Maven 设置
在您的 pom.xml 文件中添加以下配置,以将 GroupDocs.Parser 作为依赖项包含进来:
<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.Parser 的全部功能。
- 如果您决定满足需求,可购买许可证。
安装后,通过导入必要的类并设置基本配置,在项目中初始化 GroupDocs.Parser。现在让我们继续核心实现。
实现指南
我们将逐步演示三个关键步骤:定义模板字段、创建文档模板以及使用该模板解析 PDF。
使用固定位置定义模板字段
在页面上准确定位数据对于可靠提取至关重要。以下代码用于定义模板字段。
步骤 1:导入所需类
import com.groupdocs.parser.templates.TemplateField;
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Size;
import com.groupdocs.parser.templates.Point;
步骤 2:创建模板字段
// Define a rectangle for fixed positioning of the field
templateField = new TemplateField(
new Rectangle(new Point(35, 135), new Size(100, 10)), // Coordinates and size
"FromCompany"); // Name of the field
该代码片段创建了一个名为 FromCompany 的 TemplateField,位于 (35, 135),大小为 100 × 10 点。此精确定位帮助解析器 从 PDF 文档中提取数据,即使布局从不改变。
使用已定义字段创建文档模板
现在将这些字段组合成可重用的模板。
步骤 1:导入所需类
import com.groupdocs.parser.templates.Template;
import com.groupdocs.parser.templates.TemplateItem;
import java.util.Arrays;
步骤 2:创建并添加模板字段
// Construct a template with specified fields
template = new Template(Arrays.asList(new TemplateItem[]{field}));
所有已定义的字段现在都属于单个 文档模板,可用于解析。
使用模板解析 PDF
模板准备好后,您可以从任何匹配的 PDF 中提取所需信息。
步骤 1:导入所需类
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentData;
import com.groupdocs.parser.data.PageTextArea;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;
步骤 2:解析文档
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/sample_invoice.pdf"; // Replace with your document path
try (Parser parser = new Parser(inputFilePath)) {
if (!parser.getFeatures().isText()) {
throw new UnsupportedDocumentFormatException("The document format is not supported.");
}
// Parse the document using the template
DocumentData data = parser.parseByTemplate(template);
// Extract and print all relevant data from the parsed document
for (int i = 0; i < data.getCount(); i++) {
Object pageArea = data.get(i).getPageArea();
PageTextArea area = pageArea instanceof PageTextArea ? (PageTextArea) pageArea : null;
// Output extracted field name and text content if available
String fieldName = data.get(i).getName();
String fieldValue = area == null ? "Not a template field" : area.getText();
}
} catch (UnsupportedDocumentFormatException e) {
System.err.println("Error: " + e.getMessage());
}
该代码打开 PDF,验证是否支持文本提取,使用 模板 解析文件,然后遍历每个提取的字段。如果文档格式不受支持,则抛出明确的异常。
实际应用
GroupDocs.Parser 在许多实际场景中表现出色:
- 发票处理 – 自动提取日期、金额和供应商名称。
- 表单数据提取 – 捕获扫描表单中的已填写字段。
- 合同管理 – 在合同中识别关键条款、当事方和日期。
性能考虑
- 及时释放
Parser对象以释放内存。 - 尽可能保持模板简洁;不必要的字段会增加开销。
- 定期更新库以获得性能补丁。
常见问题及解决方案
| 问题 | 解决方案 |
|---|---|
| 不支持的格式错误 | 确认 PDF 包含可提取的文本(而非仅图像)。如有必要,使用 OCR 预处理。 |
| 字段值不正确 | 仔细检查矩形坐标;使用 PDF 查看器测量精确位置。 |
| 大文件导致内存激增 | 逐页解析或增大 JVM 堆大小(-Xmx)。 |
常见问答
问:什么是 GroupDocs.Parser?
答:一个 Java 库,可从 PDF、DOCX、XLSX 等文档格式中提取结构化数据。
问:如何处理不受支持的文档格式?
答:使用异常处理(如示例所示)捕获 UnsupportedDocumentFormatException,并友好地通知用户。
问:我可以使用 GroupDocs.Parser 解析 PDF 中的图像吗?
答:可以,但需确保已为您的文档类型启用库的图像提取功能。
问:如果出现常见问题,我该如何排查?
答:(原教程在此处截断;您可以通过检查文件权限、确认模板坐标与 PDF 布局匹配,以及确保使用最新的库版本来继续排查问题。)
结论
恭喜!您现在已经掌握了使用 GroupDocs.Parser Java 解析 PDF 文件的方法,从定义精确的模板字段到可靠地提取数据。通过创建可重用的 文档模板,您可以自动化重复的数据捕获任务,专注于更高价值的工作。
后续步骤
- 尝试解析不同的文档类型(DOCX、XLSX)。 尝试将 OCR 集成用于扫描的 PDF。
- 探索高级功能,如表格提取和自定义数据处理器。
欲了解更多详情,请访问官方 GroupDocs Documentation 并加入 Support Forum 社区。
最后更新: 2026-01-09
测试版本: GroupDocs.Parser 25.5
作者: GroupDocs