Portable Document Format (PDF) は、Adobe が開発した一般的で広く使用されているドキュメント形式です。 PDF ドキュメントには、書式設定されたテキスト、画像、注釈、フォーム フィールドなど、さまざまなコンテンツを含めることができます。PDF ドキュメントをプログラムで解析することは一般的なユース ケースであり、テキストを抽出する方法は複数あります。ただし、PDF ドキュメントから画像を抽出するのは複雑な作業です。この記事では、C# でプログラムを使用して PDF ドキュメントから画像を簡単に抽出できることを示します。

PDF ファイルから画像を抽出する .NET API

GroupDocs.Parser for .NET API は、PDF ファイルから画像を抽出する役割を果たします。 PDF に加えて、API は、ワープロ文書、スプレッドシート、電子書籍、プレゼンテーション、電子メール、ZIP アーカイブ、その他の多くの文書形式 からの画像の解析と抽出をサポートしています。

ダウンロード セクション から DLL または MSI インストーラーをダウンロードするか、NuGet 経由で .NET アプリケーションに API をインストールできます。

PM> Install-Package GroupDocs.Parser

C# を使用して PDF ドキュメントから画像を抽出する手順

数行の C# コードを使用して PDF ファイルから画像を取得する方法を、順を追って簡単に見ていきましょう。

  1. 新しいプロジェクトを作成します。
  2. 上記のように API をダウンロードするか、最新の API バージョンに更新します。
  3. 次の名前空間を追加します。
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
  1. Parser クラスを使用して PDF ドキュメントを読み込みます。
// Parser クラスのインスタンスを作成する
using (Parser parser = new Parser("path/document.pdf"))
{
  // あなたのコードはここに入ります。
}
  1. GetImages メソッドを使用してドキュメントから画像を抽出します。
// 画像を抽出する
IEnumerable<PageImageArea> images = parser.GetImages();

// 画像抽出がサポートされているかどうかを確認する
if (images == null)
{
    Console.WriteLine("Images extraction isn't supported");
    return;
}
  1. コレクションから各画像にアクセスし、Save メソッドを使用して保存します。
// 取得した画像を反復処理する
foreach (PageImageArea image in images)
{
    // 画像を保存
    image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", new ImageOptions(ImageFormat.Jpeg));
    imageNumber++;
}

画像は、JPG、PNG、BMP、WebP、GIF などのさまざまな画像で保存できます。

C# 完全なコード – PDF からの画像抽出

PDF ファイルからすべての画像を取得できるようにする完全なコードを次に示します。

// C# を使用して PDF から画像を抽出する
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    // 画像抽出がサポートされているかどうかを確認する
    if (images == null) 
    {
        Console.WriteLine("Images extraction isn't supported");
        return;
    }
    
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    
    // 取得した画像を反復処理する
    foreach (PageImageArea image in images)
    {
        // 画像を保存
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", options);
        imageNumber++;
    }
}

結果

サンプル PDF ドキュメント

抽出する画像を含む PDF ドキュメント。

抽出された画像

PDFから画像を抽出しました。

必要に応じて、別の記事で [C# を使用して PDF ドキュメントの特定のページから画像を抽出する] 方法についても説明されています 12

続きを読む

ドキュメント を使用して、.NET データ抽出 API について詳しく調べることができます。また、フォーラム を通じて質問を共有することもできます。

関連項目