Java 文件解析:使用 GroupDocs.Parser 從文件中提取圖像

在本完整指南中,您將學習 java document parsing 技術,使用 GroupDocs.Parser for Java 從各種檔案類型中提取圖像。我們將逐步說明庫的設定、建立自訂的 ExternalResourceHandler,以及套用智慧過濾,讓您只載入真正需要的資源——協助您 減少記憶體使用量 並加快處理速度。

快速解答

  • GroupDocs.Parser 的功能是什麼? 它能解析超過 50 種檔案格式,提供文字、圖像及其他嵌入資源供程式使用。
  • 我可以跳過不需要的圖像嗎? 是的——實作自訂的 ExternalResourceHandler 以即時過濾資源。
  • 需要哪個 Maven 版本? 使用 GroupDocs.Parser Java 25.5 或更新版本。
  • 我需要授權嗎? 免費試用可用於評估;正式環境需要永久授權。
  • 此方法是執行緒安全的嗎? 為每個執行緒建立獨立的 Parser 實例;物件不會共享。

什麼是「從文件中提取圖像」?

從文件中提取圖像是指以程式方式取得嵌入的圖片檔案,讓您能將其儲存、顯示或進一步處理,而不必保留原始檔案。當您需要縮圖、資料視覺化,或在不保留完整來源文件的情況下重新利用媒體資產時,此操作相當重要。

為什麼在提取圖像時要過濾資源?

在提取圖像時過濾資源可讓您 將記憶體使用量降低最高 70 %,因為不需要的二進位檔案不會進入 JVM 堆。此舉亦可提升安全性,防止潛在不安全的內容載入,並加快處理流程——大量合約中含有數百張裝飾圖形時,解析時間可縮短至原本的極小比例。

前置條件

  • Java Development Kit (JDK) – 版本 8 或以上。
  • Maven – 用於相依性管理。
  • 具備 Java I/O 與例外處理的基本知識。

為 Java 設定 GroupDocs.Parser

將 GroupDocs 套件庫與解析器相依性加入您的 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 下載最新版本。

授權取得

  • Free Trial – 無償探索核心功能。
  • Temporary License – 評估期間解鎖全部功能。
  • Purchased License – 商業部署時必須取得授權。

如何在提取圖像時過濾資源

若要過濾資源,請實作 ExternalResourceHandler 以決定載入哪些嵌入檔案。於開啟文件前於 ParserSettings 中註冊此處理程式,然後呼叫解析器。該處理程式會接收每個資源的中繼資料,讓您依據類型、大小或名稱等條件接受或拒絕,確保僅處理所需的圖像。

步驟 1:建立自訂處理程式

ExternalResourceHandler 是一個介面,讓您決定是否載入特定的外部資源——例如圖像。實作 onLoading 方法,對想保留的資源回傳 true,對要跳過的回傳 falseonLoading 方法會接收資源的中繼資料,應回傳 true 以載入或 false 以跳過該資源。

import com.groupdocs.parser.options.ExternalResourceHandler;
import com.groupdocs.parser.data.ExternalResourceLoadingArgs;

class Handler extends ExternalResourceHandler {
    @Override
    public void onLoading(ExternalResourceLoadingArgs args) {
        if (!args.getUri().endsWith("installation.png")) {
            args.setSkipped(true);
        }
        super.onLoading(args);
    }
}

步驟 2:使用處理程式設定 ParserSettings

ParserSettings 是一個設定類別,保存自訂處理程式、偵測設定與解析器效能調整等選項。在開啟文件前,將您的處理程式實例傳入 ParserSettings

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
import com.groupdocs.parser.exceptions.IOException;
import com.groupdocs.parser.options.ParserSettings;

public class LoadExternalResources {
    public static void run() throws IOException {
        ParserSettings settings = new ParserSettings(new Handler());
        
        try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY", settings)) {
            Iterable<PageImageArea> images = parser.getImages();
            
            for (PageImageArea image : images) {
                System.out.println(image.getFileType());
            }
        }
    }
}

步驟 3:微調過濾邏輯

若需要更複雜的規則——例如依圖像大小、格式或 URI 模式過濾——請相應擴充 onLoading 方法。例如,您可以跳過大於 2 MB 的圖像,或忽略所有 PNG 檔案。

@Override
public void onLoading(ExternalResourceLoadingArgs args) {
    if (!args.getUri().endsWith("installation.png")) {
        args.setSkipped(true);
    }
}

實務應用

  1. Document Management Systems – 從掃描的合約中僅提取必要的圖像以產生縮圖。
  2. Data Extraction Services – 跳過裝飾圖形,專注於包含有價值資料的圖表。
  3. Web Scraping Tools – 在從基於 HTML 的文件取得有意義的媒體時,過濾掉追蹤像素。

效能考量

Parser 是開啟文件並提供內容存取的核心類別。

  • 提前過濾:在遍歷資源之前套用自訂處理程式,以避免將不需要的資料載入記憶體。
  • 即時釋放:使用 try‑with‑resources (try (Parser parser = …)) 釋放原生資源。
  • 非同步處理:對於大量批次,可在平行串流中處理文件,同時確保每個 Parser 實例僅限於單一執行緒。

常見問題與解決方案

問題發生原因解決方案
未返回圖像處理程式不小心跳過所有資源檢查 if 條件,確保僅對不需要的 URI 呼叫 args.setSkipped(true)
大型檔案發生 IOException堆積記憶體不足增加 JVM 堆積大小(-Xmx2g)或將頁面分成較小的區塊處理。
授權未被識別在正式程式碼中使用試用版 DLL透過 License.setLicense("path/to/license") 設定正確的授權檔案路徑。

常見問答

Q: 使用自訂 ExternalResourceHandler 的主要目的為何?
A: 它讓您能控制載入哪些外部資源,透過過濾不必要的檔案提升安全性與效能。

Q: 我可以在沒有授權的情況下使用 GroupDocs.Parser for Java 嗎?
A: 可以,提供免費試用,但進階功能與大規模部署需要有效授權。

Q: 在使用 GroupDocs.Parser 解析時,如何處理例外情況?
A: 將解析呼叫包在 try‑catch 區塊中,捕捉 IOException 及其他特定例外,以優雅地處理錯誤。

Q: 過濾資源時常見的陷阱是什麼?
A: URI 檢查不正確可能會跳過必要的檔案;使用日誌或斷點驗證條件。

Q: 是否可以使用 GroupDocs.Parser for Java 解析非 HTML 文件?
A: 當然可以——GroupDocs.Parser 支援 PDF、Word、Excel、PowerPoint 以及許多其他格式。

後續步驟

探索完整的 API Reference 以取得其他設定,例如 ParserSettings.setDetectTables(true) 用於提取表格,或嘗試 ParserSettings.setExtractEmbeddedFonts(true) 以提取字型。


最後更新: 2026-06-22
測試環境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs

資源

相關教學