使用 GroupDocs.Parser 在 Java 中提取 PDF 表單資料

在本教學中,您將學會 如何提取 PDF 表單資料,使用 GroupDocs.Parser for Java。無論是需要讀取 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: 用於相依管理與專案建置
  • 基本 Java 知識: 熟悉類別、方法與 OOP 概念

設定 GroupDocs.Parser(Java 版)

將 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.Parser 功能。
  • 購買: 取得完整授權以供商業使用。

取得程式庫後,您即可建立 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. 初始化記錄物件: 建立 PreliminaryRecord 的實例。
  2. 填入提取值: 使用上述輔助方法將資料寫入物件。
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.
    }
}

實務應用

  • 自動化資料輸入: 直接將客戶或訂單資訊從 PDF 表單拉入後端系統。
  • 發票處理: 提取發票號碼、日期與金額,加速對帳流程。
  • 問卷回覆分析: 收集 PDF 問卷的答案以進行報表統計。
  • 醫療紀錄管理: 為電子健康紀錄(EHR)系統提取患者資訊。
  • 與 CRM 系統整合: 即時將填寫完成的 PDF 轉換為潛在客戶與聯絡人資料。

效能考量

  • 記憶體管理: 如範例所示使用 try‑with‑resources,確保 Parser 實例及時關閉。
  • 選擇性解析: 僅請求必要的欄位以降低 CPU 負載。
  • 執行緒安全: 處理大量 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 for Java 提取 PDF 表單資料 的完整、可投入生產的解決方案。透過解析表單欄位、建立結構化記錄物件,並考量效能因素,您可以自動化資料輸入、與下游系統整合,並發掘 PDF 表單中隱藏的價值。欲了解更深入的資訊,請參考官方 documentation


最後更新: 2026-06-27
測試版本: GroupDocs.Parser 25.5
作者: GroupDocs

相關教學