Javaを使用してPDF画像を操作する

画像は、PDFファイルのさまざまな種類の描写やデモンストレーションに広く使用されています。この記事では、PDFファイル内の画像をプログラムで操作する方法を学習します。特に、この記事では、Javaを使用してPDFファイル内の画像を追加、抽出、削除、または置換する方法について説明します。

PDFで画像を追加および操作するJavaAPI-無料ダウンロード

Aspose.PDF for Javaは、さまざまなPDF操作機能を提供する強力なAPIです。 APIを使用すると、PDFファイル内のテキスト、注釈、または画像をシームレスに操作できます。 APIのJARをダウンロードするか、次のMaven構成を使用してインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.2</version>
</dependency>

JavaでPDFファイルに画像を追加

以下は、JavaでPDFファイルに画像を追加する手順です。

  • まず、Documentクラスのインスタンスを作成して、PDFドキュメントをロードします。
  • Document.getPages().get_Item(int)メソッドを使用して、画像を追加するPageを取得します。
  • 画像ファイルをFileInputStreamオブジェクトにロードします。
  • Page.getResources().getImages().add(FileInputStream)メソッドを使用して、画像をページのリソースに追加します。
  • 演算子を使用して画像をページに配置します。
    1. GSave演算子を使用して、現在のグラフィック状態を保存します。
    2. ConcatenateMatrix演算子を使用して、画像を配置する場所を指定します。
    3. Do演算子を使用して、ページに画像を描画します。
    4. GRestore演算子を使用して、更新されたグラフィカル状態を保存します。
  • 最後に、Document.save(string)メソッドを使用して更新されたPDFファイルを保存します。

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

// ドキュメントを開く
Document pdfDocument1 = new Document("input.pdf");

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

// 画像を追加するページを取得します
Page page = pdfDocument1.getPages().get_Item(1);

// 画像をストリームにロード
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// ページリソースのImagesコレクションに画像を追加します
page.getResources().getImages().add(imageStream);

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

// RectangleオブジェクトとMatrixオブジェクトを作成します
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// ConcatenateMatrix(連結行列)演算子の使用:画像の配置方法を定義します
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Do演算子の使用:この演算子は画像を描画します
page.getContents().add(new Operator.Do(ximage.getName()));

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

// 新しいPDFを保存します
pdfDocument1.save("Updated_document.pdf");

// 画像ストリームを閉じる
imageStream.close();

Javaを使用してPDFファイルから画像を抽出する

以下は、Javaを使用してPDFドキュメントから画像を抽出する手順です。

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

// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// 特定の画像を抽出する
XImage xImage = pdfDocument.getPages().get_Item(1).getResources().getImages().get_Item(1);

// ストリームオブジェクトを作成して出力画像を保存します
java.io.OutputStream output = new java.io.FileOutputStream("output.jpg");

// 出力画像を保存します
xImage.save(output);

// ストリームを閉じる
output.close();

Javaを使用してPDFファイルから画像を削除する

以下は、Javaを使用してPDFファイルから画像を削除する手順です。

  • PDFファイルをDocumentオブジェクトにロードします。
  • 次のいずれかの方法を使用して、目的の画像を削除します。
  • 最後に、Document.save(string)メソッドを使用して更新されたPDFファイルを保存します。

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

// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// 特定の画像を削除する
pdfDocument.getPages().get_Item(1).getResources().getImages().delete(1);

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

Javaを使用してPDFファイルの画像を置き換える

以下は、Javaを使用してPDFファイル内の画像を置き換える手順です。

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

// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// 特定の画像を置き換える
pdfDocument.getPages().get_Item(1).getResources().getImages().replace(1, new java.io.FileInputStream(new java.io.File("apose.png")));

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

PDFで画像を追加するJavaAPI-無料のAPIライセンスを取得

一時ライセンスの取得を使用すると、Aspose.PDFforJavaを無料で試すことができます。

結論

この記事では、Javaを使用してPDFファイルの画像を操作する方法を学びました。ステップバイステップガイドとコードサンプルは、PDFファイル内の画像を抽出、追加、削除、および置換する方法を示しています。 ドキュメントを使用して、Aspose.PDFforJavaの他の機能を調べることができます。ご不明な点がございましたら、フォーラムからお問い合わせください。

関連項目