1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.NETでC#を使用してPDFから画像を抽出する方法

Posted at

PDF文書は、クロスプラットフォームでの安定性とフォーマットの保持性に優れているため、情報交換の主要な手段として広く利用されています。しかし、PDFファイルはコンテナ形式の特性上、内部リソースの効率的な抽出が技術的な課題となっています。特に、埋め込み画像のような非構造化データの取得ニーズはますます高まっています。プログラムによる自動抽出を実現することで、従来の手動キャプチャによる作業効率の限界を突破し、データアーカイブ、マルチメディアリソース管理、文書のインテリジェント解析など、より高度な用途に対応することができます。本記事では、.NETプラットフォームでC#を使用してPDF文書から画像を抽出する方法を紹介し、PDF画像の再利用を容易にする手法を解説します。

本記事で使用する方法は、無料のFree Spire.PDF for .NETライブラリを利用します。NuGetパッケージのインストール方法:PM> Install-Package FreeSpire.PDF

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

ライブラリのPdfImageHelperクラスを使用すると、PDF文書内の画像を抽出できます。まず、PdfImageHelper.GetImagesInfo(PdfPageBase)メソッドを使用して、PDFページ内の画像情報をPdfImageInfoコレクションとして取得します。その後、PdfImageInfo.Image.Save()メソッドを用いて、抽出した画像を指定の場所に保存します。以下は操作手順です:

  1. PdfDocumentオブジェクトを作成し、PdfDocument.LoadFromFile()メソッドでPDF文書を読み込みます。
  2. PdfImageHelperオブジェクトを作成し、画像情報の取得に使用します。
  3. 文書内のすべてのページをループ処理し、PdfDocument.Pages[]プロパティで各ページを取得します。
  4. PdfImageHelper.GetImagesInfo()メソッドを使用して、現在のページの画像情報をPdfImageInfoコレクションとして取得します。
  5. PdfImageInfo.Image.Save()メソッドで、抽出した画像を指定の場所に保存します。
  6. リソースを解放します。

コード例

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

namespace PDFの画像を抽出
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentインスタンスを作成
            PdfDocument pdf = new PdfDocument();

            // PDFドキュメントを読み込む
            pdf.LoadFromFile("Sample.pdf");

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

            // 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++)
                {
                    // 現在の画像を保存
                    imageInfos[j].Image.Save($"Images/Page{i + 1}-Image{j + 1}.png");
                }
            }

            // リソースを解放
            pdf.Dispose();
        }
    }
}

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

本記事では、.NETプラットフォームでC#を使用してPDF文書からすべての画像を抽出する方法について解説しました。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?