使用 GroupDocs.Parser 在 Java 中提取 PDF 表单数据

在本教程中,您将了解如何使用 GroupDocs.Parser for Java 从 PDF 文档中 提取 PDF 表单数据。无论您需要读取 PDF 表单字段、从 PDF 中提取图像,还是自动化 PDF 数据录入,下面的分步指南都将准确展示如何高效且可靠地完成此操作。

快速答复

  • 哪个库可以提取 PDF 表单数据? GroupDocs.Parser for Java
  • 我可以读取 PDF 表单字段和图像吗? 是的——支持文本字段和嵌入的图像
  • 我需要许可证吗? 免费试用可用于评估;生产环境需要商业许可证
  • 需要哪个 Java 版本? Java 8 或更高版本
  • 是否支持并行处理? 是的,您可以并发解析多个 PDF,以满足高吞吐场景

什么是提取 PDF 表单数据?

提取 PDF 表单数据是指以编程方式读取 PDF 表单中交互式字段(文本框、复选框、下拉列表等)中输入的值。这使您能够将数据从静态文档转移到数据库、CRM 系统或任何下游流程,而无需手动转录。

为什么使用 GroupDocs.Parser 提取 PDF 表单数据?

GroupDocs.Parser 提供 对超过 150 种不同表单字段类型的高精度提取,并且能够在不将整个文件加载到内存中的情况下处理多达 500 页的 PDF。它支持 50 多种输出格式(包括 DOCX、XLSX、HTML 和图像类型),并且在普通服务器级 CPU 上 每秒可处理高达 200 页,这使其非常适合大规模自动化。

前置条件

  • Java Development Kit (JDK): Java 8 或更高版本
  • Maven: 用于依赖管理和项目构建
  • Basic Java knowledge: 熟悉类、方法和面向对象概念

为 Java 设置 GroupDocs.Parser

使用 Maven 或直接下载库,将 GroupDocs.Parser 集成到您的项目中。

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

许可证获取

  • Free Trial: 获取临时许可证以测试 GroupDocs.Parser 功能。
  • Purchase: 获取完整许可证用于商业使用。

库可用后,您可以创建 Parser 实例来处理 PDF 表单:

定义锚点: Parser 类是 GroupDocs.Parser 的核心组件,负责读取和解析受支持的文档格式,通过简洁的 API 暴露表单字段、文本和图像。

import com.groupdocs.parser.Parser;

public class PdfFormExtractor {
    public static void main(String[] args) {
        try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleCarWashPdf.pdf")) {
            // Parse form fields from the document here...
        }
    }
}

如何提取 PDF 表单数据

FieldData 表示单个表单字段,包含其名称和提取的值。

使用单个 Parser 调用加载 PDF,仅请求所需的表单字段,并接收包含字段名称及其值的 FieldData 对象集合。此方法可最小化内存消耗并最大化吞吐量,尤其在并行处理数百个文件时。

步骤 1:解析表单字段

开始时创建 Parser 对象并调用 parseForm() 以检索表单结构:

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentData;

public class ExtractDataFromPdfFormsFeature {
    public static void run() {
        String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleCarWashPdf.pdf";

        try (Parser parser = new Parser(filePath)) {
            DocumentData data = parser.parseForm();
            
            if (data == null) {
                System.out.println("Form extraction isn't supported.");
                return;
            }
            // Continue to extract field values...
        }
    }
}

步骤 2:提取字段值

使用字段名称从每个 FieldData 对象中获取文本内容。此方法还演示了如何安全地 读取 PDF 表单字段

import com.groupdocs.parser.data.FieldData;
import com.groupdocs.parser.data.PageTextArea;

private static String getFieldText(DocumentData data, String fieldName) {
    FieldData fieldData = data.getFieldsByName(fieldName).get(0);
    
    return fieldData != null && fieldData.getPageArea() instanceof PageTextArea
            ? ((PageTextArea) fieldData.getPageArea()).getText()
            : null;
}

步骤 3:创建记录对象

将提取的值存储在结构化记录中,以便持久化或发送到其他系统:

static class PreliminaryRecord {
    public String Name;
    public String Model;
    public String Time;
    public String Description;
}

// Extracted values are then assigned to the record fields:
PreliminaryRecord rec = new PreliminaryRecord();
rec.Name = getFieldText(data, "Name");
rec.Model = getFieldText(data, "Model");
rec.Time = getFieldText(data, "Time");
rec.Description = getFieldText(data, "Description");

创建记录对象以存储提取的数据

PreliminaryRecord 是用于存储提取的 PDF 表单值的自定义数据持有类。

定义良好的对象可以轻松将提取的信息集成到数据库、API 或 CRM 平台中。

概述

创建结构化对象有助于管理并将表单数据集成到更大的系统中。

实现步骤

  1. Initialize the Record Object: 创建 PreliminaryRecord 实例。
  2. Populate with Extracted Values: 使用上述辅助方法填充对象。
public class CreateRecordObjectFeature {
    public static void createAndPopulateRecord() {
        PreliminaryRecord rec = new PreliminaryRecord();
        
        // Simulated extracted values for demonstration:
        rec.Name = "John Doe";
        rec.Model = "Tesla Model S";
        rec.Time = "10:00 AM";
        rec.Description = "Routine service check";
        
        // Now, the record object 'rec' can be used further.
    }
}

实际应用

  • Automated Data Entry: 将客户或订单详情直接从 PDF 表单提取到后端。
  • Invoice Processing: 提取发票号码、日期和总额,加快对账速度。
  • Survey Responses Analysis: 收集 PDF 问卷的答案用于报告。
  • Medical Records Management: 为电子健康记录(EHR)系统提取患者信息。
  • Integration with CRM Systems: 实时从已填充的 PDF 中填充潜在客户和联系人。

性能考虑

  • Memory Management: 使用 try‑with‑resources(如示例所示)确保及时关闭 Parser 实例。
  • Selective Parsing: 仅请求所需字段以降低 CPU 开销。
  • Thread Safety: 在处理大量 PDF 时,将每个 Parser 实例放在独立线程中运行;库在此用法下是线程安全的。

常见问题

Q: 我可以使用 GroupDocs.Parser 从 PDF 中提取图像吗?
A: 是的,GroupDocs.Parser 支持在提取文本字段的同时提取图像。

Q: 我该如何处理加密的 PDF?
A: 在构造 Parser 实例时提供密码,库会自动解密文档。

Q: 除了 PDF 之外,还支持哪些文件格式?
A: 该 API 还可解析 Word 文档、Excel 电子表格、PowerPoint 演示文稿等多种格式。

Q: 处理大量 PDF 的最佳方式是什么?
A: 将并行流与线程池执行器结合,能够在遵守内存限制的前提下并发解析多个文件。

Q: 生产环境是否需要商业许可证?
A: 是的,生产部署需要完整许可证;免费试用可用于评估。

结论

您现在拥有使用 GroupDocs.Parser 在 Java 中 提取 PDF 表单数据 的完整、可投入生产的方案。通过解析表单字段、创建结构化记录对象并处理性能考量,您可以实现数据录入自动化、与下游系统集成,并释放 PDF 表单中隐藏的价值。欲了解更深入的细节,请查阅官方 文档


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

相关教程