使用 GroupDocs.Watermark 提取 PDF 文字(Java): XObjects 指南

以 Java 方式提取 PDF 文字可能令人望而生畏,尤其是當你需要低層級存取嵌入的圖像、字型及其他 XObject 時。本指南將帶領你使用 GroupDocs.Watermark for Java適合 Java 的方式提取 PDF 文字,抽取所有 XObject,並讓你全面掌控內容以便後續處理。

快速解答

  • 「extract PDF text Java」是什麼意思? 它指的是使用 Java 程式碼以程式化方式讀取 PDF 中的文字(以及相關物件)。
  • 哪個函式庫負責處理 XObjects? GroupDocs.Watermark for Java 提供了簡潔的 API 來抽取 XObject。
  • 我需要授權嗎? 生產環境需要臨時或正式授權;亦提供免費試用版。
  • 我可以處理大型 PDF 嗎? 可以——可逐頁處理或使用多執行緒以降低記憶體使用。
  • 支援受密碼保護的 PDF 嗎? 完全支援——使用 PdfLoadOptions 提供解密密碼。

如何使用 GroupDocs.Watermark 提取 PDF 文字(Java)

以下我們將列出完整步驟,從設定 Maven 相依性到安全關閉 Watermarker 實例。每一步都會簡短說明 為何 需要這樣做,讓你了解程式背後的原因。

介紹

以程式方式抽取與分析 PDF 文件中嵌入的元素(如圖像與文字)可能相當具挑戰性,尤其在需要精確控制每個元件時。本教學將指導你使用 GroupDocs.Watermark for Java 高效抽取 PDF 中的 XObject。

在本完整指南中,你將學習:

  • 如何在 Java 專案中設定與使用 GroupDocs.Watermark。
  • 抽取 PDF 中 XObject 的圖像與文字屬性的步驟。
  • 實務應用與最佳化技巧,以有效處理大型文件。

首先,讓我們先檢視在開始抽取流程前的前置條件!

前置條件

請確保具備以下條件以遵循本指南:

必要的函式庫與版本

  • GroupDocs.Watermark for Java 版本 24.11 或更新版本。
  • 已設定 Maven 環境或可直接下載 GroupDocs 函式庫。

環境設定需求

  • 已在機器上安裝 Java Development Kit(JDK)。
  • 使用 IntelliJ IDEA、Eclipse 或 NetBeans 等整合開發環境(IDE)。

知識前置條件

具備 Java 程式基礎與 Maven 專案管理的概念會較為有利。對 PDF 結構與 XObject 有一定了解會更方便,但非必須。

設定 GroupDocs.Watermark for Java

若要使用 GroupDocs.Watermark 從 PDF 抽取 XObject,請依照以下方式在專案中設定函式庫:

Maven 設定

pom.xml 檔案中加入以下設定:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/watermark/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-watermark</artifactId>
        <version>24.11</version>
    </dependency>
</dependencies>

直接下載

或者,從官方發佈頁面下載最新版本的 GroupDocs.Watermark for Java。

取得授權步驟

  • 免費試用:先使用免費試用版以評估功能。
  • 臨時授權:取得臨時授權以在開發期間完整使用功能。
  • 購買:若需長期使用,請從GroupDocs購買正式授權。

基本初始化與設定

在將 GroupDocs.Watermark 加入相依性或於專案中加入 JAR 檔案後:

  1. 透過載入 PDF 文件建立 Watermarker 實例。
  2. 使用適當的載入選項來管理檔案存取。
PdfLoadOptions loadOptions = new PdfLoadOptions();
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.pdf", loadOptions);

此設定對於有效存取與操作 PDF 內容至關重要。

實作指南

本節將指導你使用 GroupDocs.Watermark Java 從 PDF 抽取 XObject。每一步都會清楚說明「如何」與「為何」以助於理解。

從 PDF 抽取 XObjects

概述

抽取 XObjects 可讓開發者取得 PDF 中每個嵌入物件(如圖像與文字元件)的詳細資訊。

步驟實作

1. 載入 PDF 文件
首先使用 PdfLoadOptions 正確載入文件以處理檔案:

PdfLoadOptions loadOptions = new PdfLoadOptions();
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.pdf", loadOptions);

為何需要此步驟? 載入選項會設定 PDF 的存取與讀取參數,對於精確的資料抽取至關重要。

2. 取得文件內容
存取文件內容以開始抽取 XObjects:

PdfContent pdfContent = watermarker.getContent(PdfContent.class);

3. 逐頁迭代
遍歷每一頁以個別處理其 XObjects:

for (PdfPage page : pdfContent.getPages()) {
    // Process each page here
}

為何要逐頁迭代? 每頁可能包含多個 XObject,需要分別抽取。

4. 抽取與分析 XObjects
對於頁面中的每個 XObject,檢查其類型並取得屬性:

for (PdfXObject xObject : page.getXObjects()) {
    if (xObject.getImage() != null) {
        // Image details
        System.out.println("Image Width: " + xObject.getImage().getWidth());
        System.out.println("Image Height: " + xObject.getImage().getHeight());
        System.out.println("Image Bytes Length: " + xObject.getImage().getBytes().length);
    }
    
    // Text and positional data
    System.out.println("Text: " + xObject.getText());
    System.out.println("X Position: " + xObject.getX());
    System.out.println("Y Position: " + xObject.getY());
    System.out.println("Width: " + xObject.getWidth());
    System.out.println("Height: " + xObject.getHeight());
    System.out.println("Rotation Angle: " + xObject.getRotateAngle());
}

為何需要如此細緻? 同時抽取圖像與文字屬性可對每個 XObject 進行全面分析,適用於數位資產管理或內容索引等情境。

5. 關閉資源
最後,關閉 Watermarker 以釋放資源:

watermarker.close();

此步驟對防止記憶體洩漏並確保所有檔案句柄在處理完畢後正確關閉至關重要。

實務應用

抽取 XObjects 從 PDF 有多項實務應用:

  1. 數位資產管理 – 自動整理從大量文件中抽取的圖像與文字。
  2. 內容索引 – 透過索引 PDF 內嵌內容提升搜尋功能。
  3. 資料分析 – 利用抽取的資料進行分析,例如圖像尺寸或文件版面評估。

將 GroupDocs.Watermark 與資料庫或雲端儲存等其他系統整合,可進一步簡化工作流程。

效能考量

為確保使用 GroupDocs.Watermark 時的最佳效能,請:

  • 透過分段處理 PDF 以優化記憶體使用。
  • 使用多執行緒同時處理多個文件,特別是面對大量檔案時。
  • 定期更新至最新版本的 GroupDocs.Watermark,以獲得效能提升與錯誤修正。

結論

在本指南中,我們探討了如何透過 GroupDocs.Watermark for JavaJava 方式提取 PDF 文字,抽取 PDF 中的 XObject。依循這些步驟,你即可有效管理與分析文件內嵌的內容。接下來,可進一步探索 GroupDocs.Watermark 提供的其他功能,或將此解決方案整合至更大的自動化流程中。

準備好開始抽取了嗎?前往 GroupDocs 文件取得更多資源與社群支援。

常見問答

如何使用 GroupDocs.Watermark 處理受加密的 PDF?

載入文件時使用 PdfLoadOptions 指定解密密碼。

GroupDocs.Watermark 能從掃描的 PDF 抽取 XObjects 嗎?

雖然它能辨識文字元素,但從非文字圖像中抽取 XObjects 需要結合 OCR。

執行 GroupDocs.Watermark Java 的系統需求是什麼?

建議使用 Java 8 以上版本,並確保有足夠的記憶體配置以處理大型文件。

Q: 是否可以只抽取圖像而不包含文字?
A: 可以——透過檢查 xObject.getImage() != null 來篩選 XObject,並忽略與文字相關的屬性。

Q: 如何批次處理多個 PDF?
A: 將抽取邏輯包在迴圈中,遍歷檔案路徑清單,必要時可使用 Java 的 ExecutorService 進行平行執行。

最後更新: 2026-01-29
測試環境: GroupDocs.Watermark 24.11 for Java
作者: GroupDocs