PDF C#の画像を操作する

写真は千の言葉の価値があります。したがって、画像やグラフィックスは、PDFやその他のドキュメントで重要な役割を果たします。 PDFは最も人気があり広く使用されているファイル形式の1つになっているため、この記事では、PDFファイル内の画像をプログラムで操作する方法を取り上げます。より正確には、C#を使用して、PDFファイルから画像を追加、抽出、削除、および置換する方法を学習します。

PDFで画像を追加、削除、抽出するためのC#API

Aspose.PDF for .NETは、.NETアプリケーション内からPDFドキュメントを作成および操作できるC#クラスライブラリです。 APIを使用すると、基本的なPDF自動化機能と高度なPDF自動化機能を非常に簡単に実行できます。さらに、既存のPDFファイルの画像を操作できます。 APIは、DLLとしてダウンロードするか、NuGetを介してインストールできます。

PM> Install-Package Aspose.Pdf

C#を使用してPDFファイルに画像を追加する

以下は、Aspose.PDF for .NETを使用してPDFファイルに画像を追加する手順です。

  • Documentクラスを使用して、新しいPDFファイルを作成するか、既存のPDFファイルをロードします。
  • Pageオブジェクトで目的のページの参照を取得します。
  • ページのリソースコレクションに画像を追加します。
  • 次の演算子を使用して、画像をページに配置します。
    • GSave operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • Do operator to draw the image on the page.
    • GRestore operator to save the updated graphical state.
  • Document.Save(String)メソッドを使用して、更新されたPDFファイルを保存します。

次のコードサンプルは、C#を使用してPDFファイルに画像を追加する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("AddImage.pdf");

// 座標を設定する
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// 画像を追加する必要があるページを取得する
Page page = pdfDocument.Pages[1];

// 画像をストリームにロード
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// ページリソースの画像コレクションに画像を追加する
page.Resources.Images.Add(imageStream);

// GSave演算子の使用:この演算子は現在のグラフィックス状態を保存します
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// RectangleオブジェクトとMatrixオブジェクトを作成します
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// ConcatenateMatrix(連結行列)演算子の使用:画像の配置方法を定義します
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Do演算子の使用:この演算子は画像を描画します
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// GRestore演算子の使用:この演算子はグラフィックスの状態を復元します
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// 更新されたドキュメントを保存する
pdfDocument.Save("AddImage_out.pdf");

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

PDFファイルからすべての画像を抽出したい場合は、以下の手順に従ってください。

  • Documentクラスを使用して、既存のPDFファイルをロードします。
  • インデックスを使用して、特定のページのResourcesコレクションからXImageオブジェクト内の目的の画像を取得します。
  • XImage.Save(FileStream, ImageFormat)メソッドを使用して、抽出した画像を目的の形式で保存します。

次のコードサンプルは、C#を使用してPDFから画像を抽出する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("ExtractImages.pdf");

// 特定の画像を抽出する
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// 出力画像を保存する
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

C#を使用してPDFから画像を削除する

PDFのページのリソースにアクセスできるようになったら、そこから画像を削除できます。以下は、C#を使用してPDFファイルから画像を削除する手順です。

  • Documentクラスを使用してPDFファイルをロードします。
  • 次のいずれかの方法を使用して画像を削除します。
  • Document.Save(String)メソッドを使用して、更新されたPDFファイルを保存します。

次のコードサンプルは、C#を使用してPDFから画像を削除する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("DeleteImages.pdf");

// 特定の画像を削除する
pdfDocument.Pages[1].Resources.Images.Delete(1);

// 更新されたPDFファイルを保存する
pdfDocument.Save("output.pdf");

C#を使用してPDFの画像を置き換える

Aspose.PDF for .NETでは、PDF内の特定の画像を置き換えることもできます。このために、ページの画像コレクション内の画像を置き換えることができます。以下は、C#を使用してPDFの画像を置き換える手順です。

  • Documentクラスを使用してPDFファイルをロードします。
  • [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24メソッドを使用して、目的の画像を置き換えます。
  • Document.Save(String)メソッドを使用して、更新されたPDFファイルを保存します。

次のコードサンプルは、C#を使用してPDFの画像を置き換える方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// 特定の画像を置き換える
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// 更新されたPDFファイルを保存する
pdfDocument.Save("output.pdf");

無料ライセンスを取得する

評価の制限なしにAPIを試すために、無料の一時ライセンスを取得できます。

結論

画像とグラフィックオブジェクトは、PDFドキュメントの重要な要素です。したがって、この記事では、PDF内の画像を操作する方法について説明しました。ステップバイステップのチュートリアルとコードサンプルは、C#を使用してPDFファイルの画像を追加、抽出、削除、および置換する方法を示しています。 ドキュメントを使用して、C#PDFAPIの詳細を調べることができます。

関連項目