如何使用 GroupDocs.Parser 在 Java 中解析 PDF

在当今数据驱动的世界中,高效 how to parse PDF 文件可以极大提升生产力。无论是自动化发票处理、数字化遗留记录,还是从 PDF 报告中提取表格,可靠的解析器都能为您节省时间并减少人工错误。本教程将指导您使用 GroupDocs.Parser for Java 读取 PDF 文本、定义可重用的 PDF 模板,并自信地提取结构化数据。

快速答案

  • What is the primary purpose of GroupDocs.Parser? 提取 PDF、DOCX、XLSX 等 50 多种文档格式的结构化数据。
  • Can I extract data from PDF without a template? 可以,但模板能显著提升固定布局 PDF 的准确性。
  • Do I need a license to try it? 可获取免费试用或临时许可证进行评估。
  • Which Java version is required? Java 8 或更高版本;该库兼容 JDK 11、 17 及更高版本。
  • Is Maven the only way to add the library? 不是,您也可以直接从官方仓库下载 JAR。

什么是使用 GroupDocs.Parser 的 “how to parse PDF”?

GroupDocs.Parser 是一个 Java 库,能够读取 PDF 文件的内部结构并提取所需信息——文本、表格或特定字段——从而使您的应用程序能够以编程方式使用这些数据。它支持 pdf parsing java 超过 50 种输入和输出格式,能够在不将整个文档加载到内存中的情况下处理数百页的文件。

为什么在 PDF 解析中使用 GroupDocs.Parser?

GroupDocs.Parser 提供 high‑accuracy extraction(在固定位置模板上字段匹配率高达 99.5%)和 broad format support(支持 50 多种格式,包括 PDF、DOCX、XLSX、PPTX、HTML 以及常见图像类型)。该库还内置了对不受支持格式的错误处理,使其成为企业级 parse pdf java 项目的可靠选择。

前置条件

在开始之前,请确保您具备以下条件:

  • GroupDocs.Parser 版本 25.5 或更高。
  • 已安装 Java Development Kit (JDK) 8 或更高版本。
  • 使用 IntelliJ IDEA 或 Eclipse 等 IDE。
  • 用于依赖管理的 Maven(可选,但推荐)。

必需的库

  • GroupDocs.Parser 版本 25.5 或更高。
  • Java Development Kit (JDK) 8 或更高。

环境搭建要求

  • 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 下载最新版本。

获取许可证

  • 获取 free trial 或临时许可证,以探索 GroupDocs.Parser 的全部功能。
  • 如果您决定满足生产需求,可购买商业许可证。

安装后,通过导入必要的类并设置基本配置,在项目中初始化 GroupDocs.Parser。现在让我们进入核心实现。

实现指南

我们将逐步演示三个关键步骤:define template fieldscreate a document templateparse a PDF using that template

使用固定位置定义模板字段

在页面上准确定位数据对于可靠提取至关重要。以下代码用于定义模板字段。

步骤 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:创建模板字段

TemplateField 表示 PDF 模板中的单个数据点,由其名称和矩形坐标定义。

// 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 点。此精确定位帮助解析器 extract PDF data 从布局始终不变的文档中提取数据。

Definition Anchor: TemplateField 表示 PDF 模板中的单个数据点,由其名称和矩形坐标定义。

使用已定义字段创建文档模板

现在将这些字段组合成可重用的模板。

步骤 1:导入所需类

import com.groupdocs.parser.templates.Template;
import com.groupdocs.parser.templates.TemplateItem;
import java.util.Arrays;

步骤 2:创建并添加模板字段

DocumentTemplate 是一个容器,保存一个或多个 TemplateField 对象并驱动提取过程。

// Construct a template with specified fields
template = new Template(Arrays.asList(new TemplateItem[]{field}));

所有已定义的字段现在都属于单个 document template,准备进行解析。

Definition Anchor: DocumentTemplate 是保存一个或多个 TemplateField 对象并驱动提取过程的容器。

使用模板解析 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:解析文档

Parser 是核心类,用于读取文档、应用 DocumentTemplate 并返回提取的字段值。

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,验证是否支持文本提取,使用 with the template 解析文件,然后遍历每个提取的字段。如果文档格式不受支持,将抛出明确的异常。

Definition Anchor: Parser 是读取文档、应用 DocumentTemplate 并返回提取字段值的核心类。

实际应用

GroupDocs.Parser 在许多真实场景中表现出色:

  1. Invoice Processing – 自动提取日期、金额和供应商名称。
  2. Form Data Extraction – 捕获扫描表单中填写的字段。
  3. Contract Management – 在合同中识别关键条款、当事方和日期。

这些用例说明了为何以编程方式 how to parse PDF 文档是现代企业的关键能力。

性能注意事项

  • 及时释放 Parser 对象以释放内存。
  • 尽可能保持模板简洁;不必要的字段会增加开销。
  • 定期更新库以获得性能补丁。
  • 对于超过 200 页的文件,顺序解析页面或增加 JVM 堆内存 (-Xmx2g) 以避免内存峰值。

常见问题及解决方案

问题解决方案
Unsupported format error确认 PDF 包含可提取的文本(而非仅图像)。如有必要,使用 OCR 预处理。
Incorrect field values仔细检查矩形坐标;使用 PDF 查看器测量精确位置。
Memory spikes on large files逐页解析或增加 JVM 堆大小 (-Xmx)。

常见问答

Q: 什么是 GroupDocs.Parser?
A: GroupDocs.Parser 是一个 Java 库,可从 PDF、DOCX、XLSX 以及超过 50 种其他文档格式中提取结构化数据。

Q: 如何处理不受支持的文档格式?
A: 如代码示例所示,捕获 UnsupportedDocumentFormatException;通知用户并可选择回退到其他处理流程。

Q: 能否使用 GroupDocs.Parser 解析 PDF 中的图像?
A: 可以,在解析器配置中启用图像提取功能即可获取嵌入的图像。

Q: 如何在没有模板的情况下从 PDF 提取纯文本?
A: 使用 Parser 类的 extractText() 方法;它返回完整的文本内容,您可以随后使用正则表达式进行处理。

Q: 创建可重用 PDF 模板的最佳实践是什么?
A: 将字段矩形紧贴内容,合理命名字段,并在多个 PDF 上测试模板以确保一致性。

结论

恭喜!您现在已经了解如何使用 GroupDocs.Parser Java how to parse PDF 文件,从定义精确的模板字段到可靠地提取数据。通过创建可重用的 document template,您可以自动化重复的数据捕获任务,提高准确性,并让团队专注于更高价值的工作。

后续步骤

  • 尝试使用相同的模板方法解析不同的文档类型,如 DOCX 或 XLSX。
  • 尝试将 OCR 集成到仅包含图像的扫描 PDF 中。
  • 探索高级功能,如表格提取、自定义数据处理器和批量处理。

欲了解更多详情,请访问官方 GroupDocs Documentation 并加入 Support Forum 社区。


最后更新: 2026-05-18
测试版本: GroupDocs.Parser 25.5
作者: GroupDocs

相关教程