從特定區域提取 PDF 圖像(使用 GroupDocs.Parser Java API)
在本教學中,您將學會如何使用 GroupDocs.Parser Java 函式庫,透過指定的矩形區域 從 PDF 檔案中提取圖像。當您需要從發票、報告或掃描表單中抽取標誌、簽名或圖表片段,而不必將整個文件載入記憶體時,此方法非常理想。您將獲得逐步指引、以效能為導向的技巧,以及實務案例。
快速回答
- 「提取 PDF 圖像」是什麼意思? 指以程式方式從 PDF 檔案中抽取點陣圖像物件,以便在其他地方重新使用。
- 本教學使用哪個函式庫? GroupDocs.Parser for Java。
- 需要授權嗎? 免費試用可用於測試;正式環境需購買永久授權。
- 可以一次處理多個檔案嗎? 可以——將示範程式碼與批次迴圈結合,即可批量提取 PDF 圖像。
- 需要哪個 Java 版本? JDK 8 或更新版本。
「提取 PDF 圖像」在 PDF 中的意義是什麼?
提取 PDF 圖像指以程式方式抽出嵌入於 PDF 檔案中的點陣圖像物件,讓您能在其他地方重新使用或處理。當 PDF 包含照片、標誌或掃描圖形時,這些元素會以圖像物件的形式儲存,透過解析 API 即可存取。這可支援如將標誌送入品牌流程或將掃描圖表送至 OCR 引擎等工作流程。
為什麼選擇 GroupDocs.Parser Java 來完成此任務?
GroupDocs.Parser 提供高階 API,讓您能從指定矩形區域提取圖像,支援處理高達 2 GB 的 PDF 而不需將整個檔案載入記憶體,且在一般 4 核心伺服器上每分鐘可處理超過 500 頁文件。此函式庫跨平台(Windows、Linux、macOS),內建串流機制以降低記憶體使用。
前置條件
- Java Development Kit (JDK) 8+ – 使用
java -version檢查。 - Maven – 雖非必須,但建議用於相依管理。
- IDE – IntelliJ IDEA、Eclipse,或您慣用的任何編輯器。
必要的函式庫與相依性
Maven 安裝
將以下設定加入您的 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 下載最新版本。
授權取得
- 免費試用: 先啟用免費試用以探索函式庫功能。
- 臨時授權: 若需延長無限制使用,可申請臨時授權。
- 購買授權: 考慮購買完整授權以供長期使用。
設定 GroupDocs.Parser for Java
Maven 設定
若使用 Maven,以上程式碼片段會自動下載所需的 JAR。
直接下載設定
手動方式下,將下載的 JAR 放入專案的 libs 資料夾,並將其加入 IDE 的建置路徑。
如何從特定 PDF 區域提取圖像?
載入 PDF、定義矩形,然後呼叫提取方法——這就是取得與該區域相交圖像的全部步驟。getImages 為從頁面中於給定矩形範圍內抽取圖像物件的方法。getImages 會掃描指定的頁面區域,僅回傳與矩形重疊的圖像。API 會回傳 PageImageArea 物件的可疊代集合,內含抽取出的圖像資料:
Iterable<PageImageArea> images = parser.getImages(options);
if (images == null) {
System.out.println("Image extraction isn't supported in this area");
} else {
// Process extracted images here
}
1. 功能概述
此功能讓您在 PDF 頁面上定義矩形區域,僅抽取與該區域相交的圖像。非常適合分離標誌、簽名或圖表片段。
2. 初始化解析器物件
Parser 類別是 GroupDocs.Parser 讀取 PDF 檔案的主要入口。傳入 PDF 檔案路徑即可建立實例:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
import com.groupdocs.parser.options.PageAreaOptions;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleImagesPdf.pdf")) {
// Code for image extraction will follow here
} catch (UnsupportedDocumentFormatException e) {
System.err.println("The provided document format is not supported.");
}
3. 定義提取區域
Rectangle 類別代表您要掃描的區域。在此範例中,我們從點 (340, 150) 開始,捕捉 300 × 100 像素的區域:
import com.groupdocs.parser.options.PageAreaOptions;
import java.awt.Rectangle;
import java.awt.Point;
import java.awt.Size;
PageAreaOptions options = new PageAreaOptions(new Rectangle(
new Point(340, 150),
new Size(300, 100)
));
4. 提取圖像
getImages 為從頁面中於給定矩形範圍內抽取圖像物件的方法。以區域選項呼叫 getImages。該方法回傳 PageImageArea 物件的可疊代集合,內含抽取出的圖像資料:
Iterable<PageImageArea> images = parser.getImages(options);
if (images == null) {
System.out.println("Image extraction isn't supported in this area");
} else {
// Process extracted images here
}
主要設定選項
- 矩形定義: 調整
Point(x、y)與Size(寬、高)以定位頁面的任意部分。 - 錯誤處理: 使用 try‑catch 區塊包裹呼叫,以優雅地處理不支援的格式或提取失敗。
實務應用
- 發票處理: 抽取標誌、條碼或特定欄位以進行自動驗證。
- 文件數位化: 從掃描報告中抽取圖表或圖形,供資料管線再利用。
- 內容歸檔: 從研究論文或行銷手冊中分離並儲存視覺資產。
效能考量
- 最佳化記憶體使用: 逐頁處理,並在每次迭代後釋放資源,以降低記憶體佔用。
- 批次處理: 將提取邏輯包在迴圈中,對多個 PDF 進行批量圖像提取,減少額外開銷。
常見問題與解決方案
| 症狀 | 可能原因 | 解決方式 |
|---|---|---|
| 未返回圖像 | 矩形未與任何圖像相交 | 核對座標與尺寸;測試時使用較大的矩形。 |
UnsupportedDocumentFormatException | PDF 版本不受支援 | 更新至最新的 GroupDocs.Parser 版本,或將 PDF 轉換為受支援的版本。 |
| 大檔案記憶體不足 | 整個文件一次載入 | 改為逐頁處理,並在每個檔案處理完畢後釋放 Parser。 |
常見問答
Q: GroupDocs.Parser 最低需要哪個 Java 版本?
A: 建議使用 JDK 8 或更新版本,以獲得最佳相容性與效能。
Q: 我能從所有類型的 PDF 檔案中提取圖像嗎?
A: 大多數 PDF 均受支援,但高度加密或損毀的檔案可能需要先行前處理。
Q: 圖像提取過程中發生錯誤該如何處理?
A: 在解析器初始化與提取呼叫周圍使用 try‑catch,捕捉 UnsupportedDocumentFormatException 及其他執行時例外。
Q: 有什麼方法可以提升大型 PDF 的效能?
A: 可以批次處理文件、將提取區域限制在必要範圍,並盡可能重複使用同一個 Parser 實例。
Q: GroupDocs.Parser 是否支援其他程式語言?
A: 本指南聚焦於 Java,GroupDocs 亦提供 .NET、Python 等平台的類似函式庫。
資源
最後更新: 2026-08-15
測試環境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs