PDF 是最流行的文件格式之一,幾乎每個企業和行業都在使用它。 PDF 文檔可以包含多種內容,包括格式化文本、圖像、註釋等。通常需要從 PDF 文件中提取內容。在本文的此處,我們將討論如何使用 Java 以編程方式從 PDF 文檔中提取圖像。

從 PDF 文件中提取圖像的 Java API

GroupDocs 為 Java 開發人員提供了 GroupDocs.Parser,用於從 PDF 文件中提取圖像。除了 PDF 文件外,相同的 API 還支持從各種其他文檔格式(如文字處理文檔、電子表格、電子書、演示文稿、電子郵件、ZIP 存檔和許多其他文檔格式 中解析和提取圖像.

下載或配置

您可以從 下載部分 下載 JAR 文件,或者只獲取基於 maven 的 Java 應用程序的 pom.xml 的存儲庫和依賴項配置。

<repository>
    <id>groupdocs-artifacts-repository</id>
    <name>GroupDocs Artifacts Repository</name>
    <url>https://releases.groupdocs.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-parser</artifactId>
    <version>22.11</version>
</dependency>

在 Java 中從 PDF 文檔中提取圖像的步驟

以下分步說明如何使用幾行 Java 代碼從 PDF 文件中獲取圖像。

  1. 創建一個新項目。
  2. 如上所述下載 API 或更新到最新的 API 版本。
  3. 導入以下類:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
  1. 使用 Parser 類加載 PDF 文檔。
// 加載PDF文件
try (Parser parser = new Parser("path/document.pdf")) {
    // 圖像提取代碼在這裡。
}
  1. 使用 getImages 方法從文檔中提取所有圖像。
// 從加載的文件中提取圖像
Iterable<PageImageArea> images = parser.getImages();
  1. 訪問集合中的每個圖像並使用 save 方法保存它。
// 使用擴展名保存文件
for (PageImageArea image : images)  {
    image.save(String.format("path/image_%d" + image.getFileType().getExtension(), imageCounter++));
}

圖像可以保存為各種不同的圖像格式,如 PNG、JPG、BMP、WebP 或 GIF。

Java完整代碼——從PDF中提取圖像

這是完整的源代碼,它允許您從提供的 PDF 文件中獲取所有圖像。

// 用Java從PDF文件中提取圖像
try (Parser parser = new Parser("path/document.pdf")) 
{
    // 獲取圖像
    Iterable<PageImageArea> images = parser.getImages();
    
    // 檢查是否支持圖像提取
    if (images == null) 
    {
        System.out.println("Images extraction isn't supported");
        return;
    }
    
    int imageCounter = 0;
    // 迭代提取的圖像
    for (PageImageArea image : images) 
    {
        image.save(String.format("path/image_%d" + image.getFileType().getExtension(), imageCounter++));
    }
}

結果

示例 PDF 文檔

具有要提取的圖像的 PDF 文檔。

提取圖像

從 PDF 中提取圖像。

如果您需要,還可以在另一篇文章中解釋如何用 Java 從 PDF 文檔的任何特定頁面中提取圖像

閱讀更多

您可以使用其 文檔 探索更多關於數據提取 Java API 的信息。您可以通過我們的 論壇 與我們分享您的疑問。

也可以看看