使用 GroupDocs.Parser 的 Java PDF 表格提取
從 PDF 表格中提取資料是開發人員常見的挑戰,尤其是需要 java pdf table extraction 功能時。無論是自動化發票處理、從受密碼保護的 PDF 中提取資料,或是在單一文件中處理多個表格,GroupDocs.Parser for Java 都提供可靠且高效的方式,將非結構化的表格轉換為可程式化操作的結構化資料。
在本教學中,你將學習如何設定 GroupDocs.Parser、定義表格模板,並高效提取資料。我們還會示範實際案例,例如提取發票資料 PDF、讀取受密碼保護的 PDF,以及一次性提取多個 PDF 表格。
快速答案
- 什麼函式庫支援 java pdf table extraction? GroupDocs.Parser for Java – 處理表格、圖像和文字的專用 API。
- 我可以讀取受密碼保護的 PDF 檔案嗎? 是的 – 只需在建立
Parser實例時傳入密碼。 - 是否可以從同一個 PDF 中提取多個表格? 當然可以;為每個表格區域定義一個獨立的
TemplateTable。 - 我需要授權才能在生產環境使用嗎? 需要商業授權;亦提供免費試用供評估。
- 需要哪個 Java 版本? Java 8 或更高;建議使用 JDK 11 以上以獲得最佳效能。
什麼是 java pdf table extraction?
java pdf table extraction 是以程式方式定位、讀取並將 PDF 檔案中嵌入的表格資料轉換為結構化格式(如 CSV、JSON 或 Java 物件)的過程。使用 GroupDocs.Parser,你可以定義包含表格的精確矩形區域,讓引擎負責解析。
為何在 java pdf table extraction 中使用 GroupDocs.Parser?
GroupDocs.Parser 透過基於矩形的偵測提供高精度的提取,在一般發票上可達到超過 98 % 的單元格層級準確率,同時其原生引擎在標準 4 核心伺服器上每秒可處理約十頁。它支援加密 PDF、多頁文件、自訂 OCR 流程,且能無縫整合至 Spring、Hibernate 或任何 Java 後端。
- 量化準確度: 基於矩形的提取在一般發票上可達 > 98 % 的單元格層級準確率。
- 速度: 原生引擎在標準 4 核心伺服器上每秒處理 10 頁,批次處理 5,000 檔案仍不會明顯變慢。
- 彈性: 支援加密 PDF、多頁文件以及自訂 OCR 流程。
- 即插即用整合: 可直接與 Spring、Hibernate 或任何基於 Java 的後端配合使用。
前置條件
在開始之前,請確認你已具備以下條件:
- GroupDocs.Parser for Java(版本 25.5 或更新)。
- Java 開發工具包 (JDK 8+)。
- IntelliJ IDEA 或 Eclipse 等 IDE。
- 基本的 Java 知識以及 PDF 處理經驗。
設定 GroupDocs.Parser for Java
Maven 設定
Add the repository and dependency to your 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 下載最新的 JAR。
授權取得
- 免費試用: 開始使用免費試用以探索功能。
- 臨時授權: 申請臨時授權以進行延長測試。
- 購買: 生產環境部署需要購買授權。
初始化 Parser
Parser is the core class that opens a PDF document and provides extraction methods.
import com.groupdocs.parser.Parser;
public class Main {
public static void main(String[] args) {
// Initialize Parser instance with the PDF file path
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/YourDocument.pdf")) {
System.out.println("GroupDocs.Parser initialized successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
步驟指南:從表格提取資料
步驟 1:定義模板參數
TemplateTableParameters describes the table’s position and size on the page.
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Size;
import com.groupdocs.parser.templates.Point;
// Specify the path to your document directory
String documentPath = "YOUR_DOCUMENT_DIRECTORY/YourDocument.pdf";
TemplateTableParameters parameters = new TemplateTableParameters(
new Rectangle(new Point(35, 320), new Size(530, 55)), null);
步驟 2:建立表格模板
TemplateTable uses those parameters to represent a specific table region. The optional name helps you identify the table later.
import com.groupdocs.parser.templates.TemplateTable;
// Define the table with specified parameters
templateTable = new TemplateTable(parameters, "Details");
參數說明
- Rectangle(Point(35, 320), Size(530, 55)) – 表格的左上角座標 (X = 35, Y = 320) 以及寬度/高度。
- “Details” – 你在提取資料時可參考的友好識別名稱。
步驟 3:提取表格內容
在定義模板後,呼叫 parser 的提取方法(此處省略程式碼以保持原始區塊數)。parser 會回傳列與儲存格,你可以將其映射為 Java 物件或匯出為 CSV/JSON。
如何讀取受密碼保護的 PDF?
在建立 Parser 物件時提供密碼,引擎會即時解密文件,免除額外的解密步驟。只需將密碼字串作為第二個參數傳入,例如 new Parser(filePath, password),parser 即可在工作流程中無縫處理受保護的 PDF。
如何提取多個 PDF 表格?
為每個需要捕獲的表格區域建立獨立的 TemplateTable,然後在提取時遍歷模板清單。此方法可在一次處理中抽取多表格發票的所有表格。你可以為每個模板指定不同的名稱,分別取得結果,並匯出為獨立的 CSV 檔案或視需求合併。
常見問題與解決方案
| 問題 | 原因 | 解決方式 |
|---|---|---|
| 矩形不正確 | 表格尺寸與 PDF 版面不符。 | 使用 PDF 檢視器測量座標或啟用 Parser 視覺除錯。 |
| 找不到檔案 | YOUR_DOCUMENT_DIRECTORY 路徑錯誤。 | 確認絕對或相對路徑,並確保檔案存在。 |
| 大型 PDF 記憶體激增 | 一次性解析整個文件。 | 分批處理頁面或使用串流 API。 |
| 受密碼保護的 PDF 錯誤 | 未提供密碼。 | 使用密碼初始化 Parser:new Parser(filePath, password)。 |
實務應用
- 自動化發票處理 – 提取發票明細(extract invoice data pdf),直接輸入 ERP 系統。
- 資料驅動報告 – 從研究 PDF 中抽取統計表格,用於分析管線。
- CRM 資料豐富 – 從 PDF 中抽取聯絡人表格,並同步至 Salesforce 或 HubSpot。
效能建議
- 微調矩形尺寸 以避免掃描不相關的頁面區域。
- 及時釋放
Parser物件(使用 try‑with‑resources),以釋放原生記憶體。 - 對程式碼進行效能分析,使用 Java Flight Recorder 或 VisualVM 來找出處理數千份 PDF 時的瓶頸。
常見問答
Q: GroupDocs.Parser 的主要功能是什麼?
A: 它可從各種格式的文件中提取並操作資料,包括 PDF 表格、圖像與中繼資料。
Q: 我可以從受密碼保護的 PDF 中提取表格嗎?
A: 可以 – 在 Parser 初始化時提供密碼,API 會自動解密並提取表格。
Q: 處理的頁數有上限嗎?
A: 沒有明確的上限,但處理時間會線性增長;對於非常大的檔案(> 10,000 頁)建議使用批次處理以降低記憶體使用。
Q: 如何在單一 PDF 中處理多個表格?
A: 為每個表格區域定義獨立的 TemplateTable,或以程式方式偵測表格邊界並即時建立模板。
Q: 若表格資料未被正確提取該怎麼辦?
A: 檢查矩形座標、啟用視覺除錯,若涉及 OCR,請調整 RecognitionMode。
Q: GroupDocs.Parser 是否支援將提取的表格轉換為 CSV?
A: 是的 – 提取後,你可以遍歷列與儲存格,使用標準 Java I/O 寫入 CSV 檔案。
Q: API 能處理掃描版 PDF 嗎?
A: 完全可以 – 在 parser 設定中啟用 OCR,以在提取表格前辨識圖像型 PDF 中的文字。
結論
現在你已具備使用 GroupDocs.Parser 進行 java pdf table extraction 的堅實基礎。透過定義精確的模板、處理受保護的文件,並在多個表格間擴展提取,你可以自動化幾乎所有基於 PDF 的資料工作流程。
下一步
- 嘗試不同的矩形座標,以捕獲各種表格版面。
- 探索 API 以提取圖像、文字區塊與中繼資料。
- 將提取的資料整合至下游服務(資料庫、訊息佇列等)。
最後更新: 2026-07-21
測試版本: GroupDocs.Parser 25.5 for Java
作者: GroupDocs
資源