iText-PDFへの画像の追加

この章では、iTextライブラリを使用してPDFドキュメントに画像を追加する方法を説明します。

PDFへの画像の追加

をインスタンス化することにより、空のPDFドキュメントを作成できます。 Documentクラス。このクラスをインスタンス化するときに、合格する必要がありますPdfDocumentコンストラクターへのパラメーターとしてのオブジェクト。PDFに画像を追加するには、追加する必要のある画像のオブジェクトを作成し、を使用して追加します。add() の方法 Document クラス。

PDFドキュメントに画像を追加する手順は次のとおりです。

ステップ1:PdfWriterオブジェクトを作成する

ザ・ PdfWriterクラスはPDFのDocWriterを表します。このクラスはパッケージに属していますcom.itextpdf.kernel.pdf。このクラスのコンストラクターは、PDFが作成されるファイルのパスを表す文字列を受け入れます。

以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

このタイプのオブジェクトがPdfDocument(クラス)に渡されると、このドキュメントに追加されたすべての要素が指定されたファイルに書き込まれます。

ステップ2:PdfDocumentオブジェクトを作成する

ザ・ PdfDocumentclassは、iTextでPDFドキュメントを表すクラスです。このクラスはパッケージに属していますcom.itextpdf.kernel.pdf。このクラスを(書き込みモードで)インスタンス化するには、クラスのオブジェクトを渡す必要がありますPdfWriter そのコンストラクタに。

以下に示すように、上記で作成したPdfWriterオブジェクトをコンストラクターに渡して、PdfDocumentクラスをインスタンス化します。

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

PdfDocumentオブジェクトが作成されると、そのクラスによって提供されるそれぞれのメソッドを使用して、ページ、フォント、添付ファイル、イベントハンドラーなどのさまざまな要素を追加できます。

ステップ3:Documentオブジェクトを作成する

ザ・ Document パッケージのクラス com.itextpdf.layoutは、自給自足のPDFを作成する際のルート要素です。このクラスのコンストラクターの1つは、クラスPdfDocumentのオブジェクトを受け入れます。

インスタンス化する Document クラスのオブジェクトを渡すことによるクラス PdfDocument 以下に示すように、前の手順で作成しました。

// Creating a Document   Document 
document = new Document(pdfDoc);

ステップ4:画像オブジェクトを作成する

を作成するには image オブジェクトは、まず第一に、作成します ImageData を使用するオブジェクト create() の方法 ImageDataFactoryクラス。このメソッドのパラメーターとして、以下に示すように、画像のパスを表す文字列パラメーターを渡します。

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

今、インスタンス化します Image のクラス com.itextpdf.layout.elementパッケージ。インスタンス化中に、上記で作成したものを渡しますImageData 以下に示すように、コンストラクターへのパラメーターとしてのオブジェクト。

// Creating an Image object 
Image img = new Image(data);

ステップ5:ドキュメントに画像を追加する

前の手順で作成した画像オブジェクトを、 add() の方法 Document 以下に示すように、クラス。

// Adding image to the document 
document.add(img);

ステップ6:ドキュメントを閉じる

を使用してドキュメントを閉じます close() の方法 Document 以下に示すように、クラス。

// Closing the document 
document.close();

次のJavaプログラムは、iTextライブラリを使用してPDFドキュメントに画像を追加する方法を示しています。名前の付いたPDFドキュメントを作成しますaddingImage.pdf、それに画像を追加し、パスに保存します C:/itextExamples/

このコードを名前の付いたファイルに保存します AddingImage.java

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class AddingImage {      
   public static void main(String args[]) throws Exception {              
      
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);        
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                        
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();              
      
      System.out.println("Image added");    
   } 
}

次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-

javac AddingImage.java 
java AddingImage

上記のプログラムを実行すると、次のメッセージを表示するPDFドキュメントが作成されます。

Image added

指定されたパスを確認すると、以下に示すように、作成されたPDFドキュメントを見つけることができます。