如何在 Java 中使用 GroupDocs.Parser 解析 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 或更新版本。
- 使用 IntelliJ IDEA 或 Eclipse 等 IDE。
- 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
此程式碼片段建立一個名為 FromCompany 的 TemplateField,位置在 (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 在多種實務情境中表現卓越:
- 發票處理 – 自動提取日期、金額與供應商名稱。
- 表單資料抽取 – 從掃描表單中捕捉已填寫的欄位。
- 合約管理 – 辨識合約中的關鍵條款、當事人與日期。
效能考量
- 及時釋放
Parser物件以釋放記憶體。 - 盡量保持範本簡潔;不必要的欄位會增加負擔。
- 定期更新函式庫,以獲得效能修補。
常見問題與解決方案
| 問題 | 解決方案 |
|---|---|
| 不支援的格式錯誤 | 確認 PDF 包含可抽取的文字(而非僅圖像)。如有需要,使用 OCR 前處理。 |
| 欄位值不正確 | 再次確認矩形座標;可使用 PDF 檢視器測量精確位置。 |
| 大型檔案記憶體激增 | 逐頁解析或增大 JVM 堆積大小 (-Xmx)。 |
常見問答
Q: 什麼是 GroupDocs.Parser?
A: 一個 Java 函式庫,可從 PDF、DOCX、XLSX 及其他文件格式中抽取結構化資料。
Q: 如何處理不支援的文件格式?
A: 使用例外處理(如範例所示)捕捉 UnsupportedDocumentFormatException,並友善地通知使用者。
Q: 我可以使用 GroupDocs.Parser 解析 PDF 內的圖像嗎?
A: 可以,但需確保已為您的文件類型啟用函式庫的圖像抽取功能。
Q: 如果出現問題,常見的故障排除步驟是什麼?
A:(原始教學在此處截斷;您可以透過檢查檔案權限、確認範本座標與 PDF 版面相符,以及確保使用最新的函式庫版本來繼續排除故障。)
結論
恭喜!您現在已掌握使用 GroupDocs.Parser Java 解析 PDF 檔案的技巧,從定義精確的範本欄位到可靠地抽取資料。透過建立可重複使用的 文件範本,您可以自動化重複性的資料擷取工作,並專注於更高價值的任務。
後續步驟
- 嘗試解析不同的文件類型(DOCX、XLSX)。
- 嘗試將 OCR 整合至掃描 PDF 的解析流程。
- 探索進階功能,如表格抽取與自訂資料處理器。
欲取得更多資訊,請造訪官方 GroupDocs Documentation 並加入 Support Forum 社群。
最後更新: 2026-01-09
測試版本: GroupDocs.Parser 25.5
作者: GroupDocs