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ドキュメントを見つけることができます。