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 ページから画像を抽出するには、以下の手順を参照してください。
-
PdfDocument
クラスのLoadFromFile()
メソッドを使用して、PDF ファイルを読み込みます。 -
PdfDocument
クラスのPages[index]
プロパティを通じて、指定されたページを取得します。 -
PdfImageHelper
オブジェクトを作成し、その GetImagesInfo() メソッドを使用して、ページ内の画像情報のコレクションを取得します。 - 画像情報のコレクションを反復処理し、
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();
}
}
}
C#でPDF文書からすべての画像を抽出する
PDF文書内のすべての画像を取得するには、各ページを巡回して画像を抽出する必要があります。詳細は以下の手順を参照してください。
-
PdfDocument
クラスのLoadFromFile()
メソッドを使用して、PDF ファイルを読み込みます。 -
PdfImageHelper
オブジェクトを作成します。 - 文書内の各ページを反復処理します。
-
PdfDocument
クラスのPages[index]
プロパティを通じて、指定されたページを取得します。 -
PdfImageHelper.GetImagesInfo()
メソッドを使用して、ページ内の画像情報のコレクションを取得します。 - 画像情報のコレクションを反復処理し、
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();
}
}
}
透かしを削除するには、無料トライアルライセンスの申し込みをクリックすることができます: