2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C# を使用して PDF から画像を抽出する

Posted at

PDF ファイルに、アートワーク、デザイン素材、レポートのグラフなどの価値のある画像が含まれている場合、これらの画像を抽出することで、これらの画像リソースを個別に保存することができます。これにより、後に異なるプロジェクトで使用する際に便利になり、毎回 PDF から画像を探す必要があることを避けることができます。この記事では、C# を使ってプログラム的に PDF 文書から画像を抽出する方法を紹介します。

.NET PDF ライブラリ(インストール)

PDF から画像を抽出するには、Spire.PDF for .NET ライブラリが必要です。このライブラリは NuGet を通じて直接インストールすることができます。

PM> Install-Package Spire.PDF

または、下記のリンクから製品パッケージをダウンロードし、手動で Spire.Pdf.dll をプロジェクトに追加することもできます。

C#で指定されたPDFページから画像を抽出する

PdfImageHelper クラスは、ユーザーが PDF 文書内の画像を管理するのに役立ちます。指定された PDF ページから画像を抽出するには、以下の手順を参照してください。

  1. PdfDocument クラスの LoadFromFile() メソッドを使用して、PDF ファイルを読み込みます。
  2. PdfDocument クラスの Pages[index] プロパティを通じて、指定されたページを取得します。
  3. PdfImageHelper オブジェクトを作成し、その GetImagesInfo() メソッドを使用して、ページ内の画像情報のコレクションを取得します。
  4. 画像情報のコレクションを反復処理し、PdfImageInfo.Image.Save() メソッドを使用して、各画像を PNG 形式で指定されたファイルパスに保存します。

C#のコード:

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;

namespace ExtractImagesFromSpecificPage
{
    class Program
    {
        static void Main(string[] args)
        {
            // PDF 文書を読み込む
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("抹茶.pdf");

            // 最初のページを取得する
            PdfPageBase page = pdf.Pages[0];

            // PdfImageHelper オブジェクトを作成する
            PdfImageHelper imageHelper = new PdfImageHelper();

            // ページ上の画像情報を取得する
            PdfImageInfo[] imageInfos = imageHelper.GetImagesInfo(page);

            // 画像情報を反復処理する
            for (int i = 0; i < imageInfos.Length; i++)
            {
                // 特定の画像情報を取得する
                PdfImageInfo imageInfo = imageInfos[i];

                // 指定された画像を取得する
                Image image = imageInfo.Image;

                // 画像を PNG 形式で保存する
                image.Save("画像\\img-" + i + ".png");
            }

            pdf.Dispose();
        }
    }
}

ExtractImageFromPDFPage.png

C#でPDF文書からすべての画像を抽出する

PDF文書内のすべての画像を取得するには、各ページを巡回して画像を抽出する必要があります。詳細は以下の手順を参照してください。

  1. PdfDocument クラスの LoadFromFile() メソッドを使用して、PDF ファイルを読み込みます。
  2. PdfImageHelper オブジェクトを作成します。
  3. 文書内の各ページを反復処理します。
  4. PdfDocument クラスの Pages[index] プロパティを通じて、指定されたページを取得します。
  5. PdfImageHelper.GetImagesInfo() メソッドを使用して、ページ内の画像情報のコレクションを取得します。
  6. 画像情報のコレクションを反復処理し、PdfImageInfo.Image.Save() メソッドを使用して、各画像を PNG 形式で指定されたファイルパスに保存します。

C#のコード:

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;

namespace ExtractAllImages
    {
        class Program
        {
            static void Main(string[] args)
            {
                // PDF 文書を読み込む
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile("AI.pdf");

                // PdfImageHelper オブジェクトを作成する
                PdfImageHelper imageHelper = new PdfImageHelper();

                int m = 0;
                // PDF のページを反復処理する
                for (int i = 0; i < pdf.Pages.Count; i++)
                {
                    // 指定されたページを取得する
                    PdfPageBase page = pdf.Pages[i];

                    // ページ上の画像情報を取得する 
                    PdfImageInfo[] imageInfos = imageHelper.GetImagesInfo(page);

                    // 画像情報を反復処理する
                    for (int j = 0; j < imageInfos.Length; j++)
                    {
                        // 特定の指定された画像情報を取得する
                        PdfImageInfo imageInfo = imageInfos[j];

                        // 指定された画像を取得する
                        Image image = imageInfo.Image;

                        // 画像を PNG 形式で保存する
                        image.Save("PDF画像\\img-" + m + ".png");
                        m++;
                    }

                }

                pdf.Dispose();
            }
        }
    }

ExtractPDFimage.png


透かしを削除するには、無料トライアルライセンスの申し込みをクリックすることができます:

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?