PDFドキュメントのページを画像ファイルとして他の人と共有する必要があるかもしれません。 C#開発者は、.NETアプリケーションでPDFファイルをプログラムでPNG、JPG、TIFF、またはBMPに簡単に変換できます。この記事では、C#を使用してPDFを画像に変換する方法を学習します。
この記事では、次のトピックについて説明/取り上げています。
- PDFから画像への変換C#API
- C#を使用してPDFをPNG画像に変換する
- C#を使用してPDFをJPG画像に変換する
- C#でのPDFからBMPへの変換
- C#でのPDFからTIFFへの変換
- C#を使用してPDFドキュメントから画像を抽出する
PDFから画像への変換C#API
PDFを画像に変換するには、Aspose.PDF for .NETAPIを使用します。これは、.NETアプリケーション内からPDFドキュメントを操作できる強力なPDFファイル管理APIです。 Adobe Acrobatを使用せずに、ドキュメントの作成、変更、変換、レンダリング、保護、および印刷を行うことができます。
APIのDLLをダウンロードするか、NuGetを使用してインストールできます。
Install-Package Aspose.Pdf
C#を使用してPDFをPNG画像に変換する
以下の手順に従って、プログラムでPDFファイルをPNG画像に変換できます。
- 入力PDFファイルパスを使用してDocumentクラスのインスタンスを作成します。
- Document.Pagesコレクションを使用してPDFのすべてのページをループし、次の手順を実行します。
- Resolutionクラスのインスタンスを作成し、その値を設定します。
- PngDeviceクラスのインスタンスを作成し、Width、Height、Resolutionオブジェクトを渡します。
- ページ番号と出力PNG画像パスを指定してProcess(Page、String)メソッドを呼び出し、ページをPNGに変換します。
次のコードサンプルは、C#を使用してPDFページをPNG画像に変換する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\sample.pdf");
foreach (var page in pdfDocument.Pages)
{
// 解像度を定義する
Resolution resolution = new Resolution(300);
// 指定された属性でPngデバイスを作成する
// 幅、高さ、解像度
PngDevice PngDevice = new PngDevice(500, 700, resolution);
// 特定のページを変換し、画像を保存してストリーミングする
PngDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".Png");
}
DocumentクラスはPDFドキュメントを表します。さまざまな機能を実行するためのいくつかのプロパティとメソッドを提供します。 Document.Pagesコレクションはドキュメントページのコレクションであり、ページ番号はコレクション内の1から始まります。 Resolutionクラスは、画像の解像度を定義します。 PngDeviceクラスを使用すると、PDFドキュメントのページをPNG画像に保存できます。このクラスは、ページをPNG画像に保存するための次のメソッドを提供します。
- プロセス(ページ、文字列) — Performs some operation on the given page and saves results into the file at given path.
- プロセス(ページ、ストリーム) — Converts the page into PNG and saves it in the output stream.
C#を使用してPDFをJPG画像に変換する
以下の手順に従って、プログラムでPDFファイルをJPG画像に変換できます。
- 入力ファイルパスを使用してDocumentクラスのインスタンスを作成します。
- Document.Pagesコレクションを使用してPDFのすべてのページをループし、次の手順を実行します。
- Resolutionクラスのインスタンスを作成し、その値を設定します。
- JpegDeviceクラスのインスタンスを作成し、Width、Height、Resolutionオブジェクトを渡します。
- ページ番号と出力JPG画像パスを指定してProcess(Page、String)メソッドを呼び出し、ページをJPGに変換します。
次のコードサンプルは、C#を使用してPDFページをJPG画像に変換する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\sample.pdf");
foreach (var page in pdfDocument.Pages)
{
// 解像度を定義する
Resolution resolution = new Resolution(300);
// 指定された属性でJpegデバイスを作成します
// 幅、高さ、解像度
JpegDevice JpegDevice = new JpegDevice(500, 700, resolution);
// 特定のページを変換し、画像を保存してストリーミングする
JpegDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".Jpg");
}
C#を使用したPDFからBMPへの変換
以下の手順に従って、プログラムでPDFファイルをBMP画像に変換できます。
- 入力ファイルパスを使用してDocumentクラスのインスタンスを作成します。
- Document.Pagesコレクションを使用してPDFのすべてのページをループし、次の手順を実行します。
- Resolutionクラスのインスタンスを作成し、その値を設定します。
- BmpDeviceクラスのインスタンスを作成し、Width、Height、Resolutionオブジェクトを渡します。
- ページ番号と出力BMP画像パスを指定してProcess(Page、String)メソッドを呼び出し、ページをBMPに変換します。
次のコードサンプルは、C#を使用してPDFページをBMP画像に変換する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\sample.pdf");
foreach (var page in pdfDocument.Pages)
{
// 解像度を定義する
Resolution resolution = new Resolution(300);
// 指定された属性でPNGデバイスを作成する
// 幅、高さ、解像度
BmpDevice BmpDevice = new BmpDevice(500, 700, resolution);
// 特定のページを変換し、画像を保存してストリーミングする
BmpDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".bmp");
}
C#を使用したPDFからTIFFへの変換
以下の手順に従って、PDFファイルをプログラムでTIFFに変換できます。
- 入力ファイルパスを使用してDocumentクラスのインスタンスを作成します。
- Resolutionクラスのインスタンスを初期化し、その値を設定します。
- TiffSettingsクラスのインスタンスを作成します。
- Compression、Depth、Shape、SkipBlankPagesなどのさまざまなプロパティを設定します。
- ResolutionオブジェクトとTiffSettingsオブジェクトを使用して、TiffDeviceクラスのインスタンスを作成します。
- Documentオブジェクトと出力TIFFファイルパスを指定してProcess(Document、String)メソッドを呼び出し、ドキュメントをTIFFに変換します。
次のコードサンプルは、C#を使用してPDFファイルをTIFFに変換する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\sample.pdf");
// 解像度を定義する
Resolution resolution = new Resolution(300);
// TiffSettingsオブジェクトを作成します
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Portrait,
SkipBlankPages = false
};
// TIFFデバイスを作成する
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// 特定のページを変換し、画像を保存してストリーミングする
tiffDevice.Process(pdfDocument, "C:\\Files\\AllPagesToTIFF_out.tif");
TiffSettingsクラスは、PDFをTIFFに変換するためのいくつかの設定を提供します。 PDFをTIFFに変換するときに、明るさ、圧縮、CoordinateType、深さ、マージン、形状、およびSkipBlankPagesを設定できます。
C#を使用してPDFドキュメントから画像を抽出する
以下の手順に従って、プログラムでPDFファイルからすべての画像を抽出できます。
- 入力ファイルパスを使用してDocumentクラスのインスタンスを作成します。
- ページごとに、Page.Resources.Imagesコレクション内のすべての画像に対してXImageインスタンスを作成します。
- 出力画像ファイルパスを使用してFileStreamクラスのインスタンスを作成します。
- FileStreamオブジェクトでSave()メソッドを呼び出して、画像を保存します
- 最後に、Close()メソッドを使用してFileStreamを閉じます。
次のコードサンプルは、C#を使用してPDFドキュメントから画像を抽出する方法を示しています。
// ドキュメントを開く
Document pdfDocument = new Document("C:\\Files\\sample.pdf");
// ページをループする
foreach (var page in pdfDocument.Pages)
{
int imageCounter = 1;
// すべての画像をループする
foreach (XImage image in page.Resources.Images)
{
// 画像のファイルストリームを作成する
FileStream outputImage = new FileStream(String.Format("C:\\Files\\Page{0}_Image{1}.jpg", page.Number, imageCounter), FileMode.Create);
// 出力画像を保存する
image.Save(outputImage);
// ストリームを閉じる
outputImage.Close();
imageCounter++;
}
}
XImageクラスは、画像X-Objectを表します。画像を操作するためのいくつかのプロパティとメソッドを提供します。 XImageクラスは、画像オブジェクトを保存するための次のメソッドを提供します。
- 保存(ストリーム) — Saves image data into stream as JPEG image.
- Save(Stream, ImageFormat) — Saves image into stream with requested format.
- Save(Stream, Int32)メソッド—画像データを指定された解像度のJPEG画像としてストリームに保存します。
- Save(Stream, ImageFormat、Int32)メソッド—要求された形式と指定された解像度で画像をストリームに保存します。
Page.Resources.Imagesコレクションは、特定のページの画像のコレクションを表します。
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C#を使用してPDFファイルページを画像に変換する方法を学習しました。また、PDFをPNGに、PDFをJPGに、PDFをBMPに、PDFをTIFFにプログラムで変換する方法も学びました。さらに、C#を使用してPDFファイルから画像を抽出する方法を学びました。 APIは、圧縮オプション、テーブルの作成と操作、グラフと画像の機能、広範なハイパーリンク機能、スタンプと透かしのタスク、拡張されたセキュリティ制御、カスタムフォント処理も提供します。 ドキュメントを使用して、Aspose.PDF for.NETAPIの詳細を確認できます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。