写真は千の言葉の価値があります。したがって、画像やグラフィックスは、PDFやその他のドキュメントで重要な役割を果たします。 PDFは最も人気があり広く使用されているファイル形式の1つになっているため、この記事では、PDFファイル内の画像をプログラムで操作する方法を取り上げます。より正確には、C#を使用して、PDFファイルから画像を追加、抽出、削除、および置換する方法を学習します。
- PDFの画像を操作するC#API
- C#を使用してPDFに画像を追加する
- C#を使用してPDFから画像を抽出する
- C#を使用して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ファイルをロードします。
- 次のいずれかの方法を使用して画像を削除します。
- Delete() - Delete all images.
- Delete(Int32) - Delete image by index.
- Delete(String) - Delete image by name.
- 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の詳細を調べることができます。