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

在當今以數據為驅動的世界,如何解析 PDF 檔案的效率可大幅提升生產力。無論是自動化發票處理、數位化舊有記錄,或是從 PDF 報告中抽取表格,可靠的解析器都能為您節省時間並減少人工錯誤。本教學將帶您使用 GroupDocs.Parser for Java 讀取 PDF 文字、定義可重用的 PDF 範本,並自信地抽取結構化資料。

快速解答

  • GroupDocs.Parser 的主要目的為何? 從 PDF、DOCX、XLSX 以及超過 50 種其他文件格式中抽取結構化資料。
  • 我可以在沒有範本的情況下抽取 PDF 資料嗎? 可以,但範本能顯著提升固定版面 PDF 的準確度。
  • 試用是否需要授權? 可取得免費試用或臨時授權以進行評估。
  • 需要哪個 Java 版本? Java 8 或以上;此函式庫支援 JDK 11、17 及更新版本。
  • Maven 是唯一加入函式庫的方式嗎? 不是,您也可以直接從官方儲存庫下載 JAR。

什麼是使用 GroupDocs.Parser 解析 PDF?

GroupDocs.Parser 是一個 Java 函式庫,可讀取 PDF 檔案的內部結構並抽取您所需的資訊——文字、表格或特定欄位——讓您的應用程式以程式方式使用。它支援 pdf parsing java 超過 50 種輸入與輸出格式,能處理數百頁的檔案而不需將整個文件載入記憶體。

為何使用 GroupDocs.Parser 進行 PDF 解析?

GroupDocs.Parser 提供 高精度抽取(在固定位置範本上可達 99.5% 欄位匹配率)以及 廣泛的格式支援(超過 50 種格式,包括 PDF、DOCX、XLSX、PPTX、HTML 以及常見影像類型)。此函式庫亦內建不支援格式的錯誤處理,使其成為企業級 parse pdf java 專案的可靠選擇。

前置條件

在開始之前,請確保您具備以下項目:

  • GroupDocs.Parser 版本 25.5 或更新。
  • 已安裝 Java Development Kit (JDK) 8 或更新版本。
  • IDE,例如 IntelliJ IDEA 或 Eclipse。
  • 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 下載最新版本。

取得授權

  • 取得 免費試用 或臨時授權,以探索 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:建立範本欄位

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 點。此精確的放置協助解析器 抽取 PDF 資料,即使文件版面永不變動。

定義說明: 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,可供解析使用。

定義說明: 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,驗證是否支援文字抽取,使用 範本 解析檔案,並遍歷每個抽取的欄位。若文件格式不受支援,將拋出明確的例外。

定義說明: Parser 是核心類別,負責讀取文件、套用 DocumentTemplate,並回傳抽取的欄位值。

實務應用

GroupDocs.Parser 在許多實務情境中表現卓越:

  1. 發票處理 – 自動抽取日期、金額與供應商名稱。
  2. 表單資料抽取 – 捕捉掃描表單中填寫的欄位。
  3. 合約管理 – 識別合約中的關鍵條款、當事人與日期。

這些使用案例說明了為何以程式方式 解析 PDF 文件是現代企業的關鍵能力。

效能考量

  • 及時釋放 Parser 物件以釋放記憶體。
  • 盡量保持範本簡潔;不必要的欄位會增加負擔。
  • 定期更新函式庫以獲得效能修補。
  • 對於超過 200 頁的檔案,請逐頁解析或增加 JVM 堆疊大小 (-Xmx2g) 以避免記憶體激增。

常見問題與解決方案

問題解決方案
不支援格式錯誤確認 PDF 含有可抽取的文字(而非僅圖像)。如有需要,使用 OCR 前處理。
欄位值不正確再次確認矩形座標;使用 PDF 檢視器測量精確位置。
大型檔案記憶體激增逐頁解析或增加 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 解析 PDF 檔案,從定義精確的範本欄位到可靠抽取資料。透過建立可重用的 document template,您可以自動化重複的資料擷取工作、提升準確度,並讓團隊專注於更高價值的工作。

後續步驟

  • 嘗試使用相同的範本方法解析不同的文件類型,例如 DOCX 或 XLSX。
  • 實驗將 OCR 整合至僅含影像的掃描 PDF。
  • 探索進階功能,如表格抽取、自訂資料處理器與批次處理。

欲取得更多資訊,請造訪官方 GroupDocs Documentation 並加入 Support Forum 社群。


Last Updated: 2026-05-18
Tested With: GroupDocs.Parser 25.5
Author: GroupDocs

相關教學