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,對要跳過的回傳 false。onLoading 方法會接收資源的中繼資料,應回傳 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);
}
}
實務應用
- Document Management Systems – 從掃描的合約中僅提取必要的圖像以產生縮圖。
- Data Extraction Services – 跳過裝飾圖形,專注於包含有價值資料的圖表。
- 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
資源
- 文件說明: GroupDocs.Parser Documentation
- API 參考: API Details
- 下載: Latest Versions