從 PDF 檔案中提取圖像是構建文件處理流水線時的常見需求,特別是當您需要將圖形重複用於縮圖、報告或進一步分析時。 GroupDocs.Parser Cloud SDK for Java 提供了一個直接的 API,讓您只需幾行程式碼即可從 PDF 中提取所有嵌入的圖像。本指南將帶您完成 SDK 的配置、執行完整的程式碼範例、使用 cURL 完成相同任務,以及應用最佳實踐以確保可靠的 PDF 圖像提取。
在 Java 中 5 步提取 PDF 文檔中的圖像
- 配置 API 憑證:建立一個
Configuration物件,並設定您的 client ID 和 secret。
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
- 初始化 Parser API:使用配置建立
ApiClient,並實例化ParserApi。
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
建立圖像提取請求:使用
FileInfo指定 PDF 檔案路徑,並建立ExtractImagesRequest。String inputFilePath = "input.pdf"; ExtractImagesRequest request = new ExtractImagesRequest() .setFileInfo(new FileInfo().setFilePath(inputFilePath));執行提取並檢索圖像:呼叫
extractImages並取得Image物件的清單。
ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
- 將每個圖像保存到本地存儲:遍歷集合並將二進位資料寫入檔案。
for (int i = 0; i < images.size(); i++) {
Image img = images.get(i);
String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
fos.write(img.getData());
}
System.out.println("Saved image: " + outputFileName);
}
如需了解每個類別的更多細節,請參閱官方 API 參考。
完整程式碼範例:在 Java 中使用 GroupDocs.Parser 從 PDF 文件提取圖像
以下範例示範了從憑證設定到圖像保存的完整工作流程。
import com.groupdocs.parser.cloud.ApiClient;
import com.groupdocs.parser.cloud.Configuration;
import com.groupdocs.parser.cloud.api.ParserApi;
import com.groupdocs.parser.cloud.model.FileInfo;
import com.groupdocs.parser.cloud.model.Image;
import com.groupdocs.parser.cloud.model.ImagesResult;
import com.groupdocs.parser.cloud.model.requests.ExtractImagesRequest;
import java.io.FileOutputStream;
import java.util.List;
public class ExtractImagesFromPdf {
public static void main(String[] args) {
// Configure API credentials
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
// config.setBaseUrl("https://api.groupdocs.cloud"); // optional, if needed
// Initialize API client and Parser API
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
// Path to the PDF file stored in GroupDocs Cloud storage
String inputFilePath = "input.pdf";
// Build request for image extraction
ExtractImagesRequest request = new ExtractImagesRequest()
.setFileInfo(new FileInfo().setFilePath(inputFilePath));
try {
// Perform extraction
ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
// Save each extracted image to local disk
for (int i = 0; i < images.size(); i++) {
Image img = images.get(i);
String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
fos.write(img.getData());
}
System.out.println("Saved image: " + outputFileName);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意: 此程式碼範例展示了核心功能。在您的專案中使用之前,請確保更新所有檔案路徑和設定值以符合實際環境,驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如果您遇到任何問題,請參閱官方文件或聯繫支援團隊以獲得協助。
使用 cURL 和 REST API 提取 PDF 圖像
您可以透過直接呼叫 GroupDocs.Parser Cloud REST 端點,而無需編寫 Java 程式碼,即可達成相同的結果。
- 取得存取令牌
curl -X POST "https://api.groupdocs.cloud/v2.0/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- 上傳 PDF 檔案
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/input.pdf"
- 請求圖像提取
curl -X POST "https://api.groupdocs.cloud/v2.0/parser/extractImages" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fileInfo": {"filePath": "input.pdf"}}'
- 下載提取的圖像(回應包含 base64 資料;您可以在本地解碼)
欲取得完整的參數清單,請參閱官方 API 文件。
安裝與設定 GroupDocs.Parser Cloud SDK for Java
將 Maven 依賴項添加到您的 pom.xml(或等效的 Gradle 片段)。
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser-cloud</artifactId>
<version>26.2</version>
</dependency>
SDK 以雲端庫的形式提供;不需要本地二進位檔。從發行頁面下載最新套件。確保您已安裝 Java 8 或更高版本,並擁有有效的 GroupDocs Cloud 帳戶以及客戶端 ID 和密鑰。
GroupDocs.Parser Cloud SDK for Java 功能:啟用圖像檢索
- 完整的 PDF 圖像提取 - 檢索文件中嵌入的所有光柵和向量圖像。
- 每個圖像的元資料 - 返回檔案名稱、大小、格式和頁碼。
- 支援所有常見的圖像格式 - PNG、JPG、BMP、GIF、TIFF,等更多。
- 雲端儲存整合 - 直接在 GroupDocs Cloud 中的檔案上工作,無需先下載。
- 可擴展的 REST‑based 處理 - 透過雲端 API 處理大型 PDF 和高容量工作負載。
微調圖像提取設定
雖然基本請求已可直接使用,但您可以調整以下選項:
- 密碼保護 - 在
FileInfo上設定password屬性以處理加密的 PDF。 - 頁面範圍 - 透過在請求 JSON 中加入
pages陣列,將提取限制於特定頁面。 - 影像格式轉換 - 在請求中指定所需的輸出類型以請求轉換為其他格式(請參考 API 參考 以取得確切欄位)。
設定密碼的範例(摘自主程式碼):
FileInfo fileInfo = new FileInfo()
.setFilePath("protected.pdf")
.setPassword("mySecret");
高效 PDF 圖像提取的實用技巧
- 驗證檔案是否存在 在發送請求之前,以避免不必要的 API 呼叫。
- 以串流方式處理影像 在處理大型檔案時減少記憶體使用。
- 使用分頁 若只需要特定頁面的影像,這可加快回應速度。
- 處理 API 速率限制 透過在 HTTP 429 回應時實作指數退避。
- 記錄每個已儲存的檔名 以簡化故障排除和稽核追蹤。
結論
在 Java 中從 PDF 文檔提取圖像變得簡單且可靠,只要您利用 GroupDocs.Parser Cloud SDK for Java 的強大功能。該 SDK 處理憑證管理、雲存儲交互和圖像解碼,讓您專注於應用程式邏輯。對於生產環境部署,請在 定價頁面 購買正式授權,或獲取臨時授權以進行評估。通過本文中的代碼示例、cURL 指南和最佳實踐建議,您即可將 PDF 圖像提取整合到任何基於 Java 的解決方案中。
常見問題
可以從 PDF 中提取哪些格式?
SDK 可提取光柵格式,如 PNG、JPG、BMP、GIF 和 TIFF,以及在作為圖像存儲時的向量圖形。在提取圖像之前,我需要先下載 PDF 嗎?
不需要。SDK 直接與存儲在 GroupDocs Cloud 的文件協同工作,無需本地下載。SDK 如何處理大型 PDF?
抽取在伺服器端執行,因此您機器上的記憶體使用量保持低。您也可以將抽取限制在特定頁面,以提升效能。是否有方法在不編寫程式碼的情況下測試提取?
是的,您可以使用上面提供的 cURL 命令,或在產品頁面上嘗試互動式 API 控制台。
