如何使用 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

该代码片段创建了一个名为 FromCompanyTemplateField,位于 (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 在许多实际场景中表现出色:

  1. 发票处理 – 自动提取日期、金额和供应商名称。
  2. 表单数据提取 – 捕获扫描表单中的已填写字段。
  3. 合同管理 – 在合同中识别关键条款、当事方和日期。

性能考虑

  • 及时释放 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