iText-画像の回転

この章では、iTextライブラリで使用可能な関数を使用して、PDFドキュメントに画像を挿入する方法とその画像を回転させる方法について説明します。

PDF内の画像の回転

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

PDFに画像を追加するには、追加する必要のある画像のオブジェクトを作成し、を使用して追加します。 add() の方法 Documentクラス。を使用して画像を回転させることができますsetRotationAngle() 方法。

以下は、PDFドキュメント内の画像を回転させる手順です。

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

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

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

// Creating a PdfWriter 
String dest = "C:/itextExamples/rotatingImage.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:画像オブジェクトを作成する

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

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

今、インスタンス化します Image のクラス com.itextpdf.layout.elementパッケージ。インスタンス化中に、ImageData object、以下に示すように、コンストラクターへのパラメーターとして。

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

ステップ5:画像を回転させる

を使用して画像を回転させることができます setRotationAngle()方法。この方法では、画像を回転させる回転角を表す整数を渡す必要があります。

// Rotating the image 
image.setRotationAngle(45);

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

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

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

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

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

// Closing the document 
document.close();

次のJavaプログラムは、iTextライブラリを使用してPDFドキュメント上で画像を特定の角度で回転させる方法を示しています。

名前の付いたPDFドキュメントを作成します rotatingImage.pdf、画像を追加し、回転させて、パスに保存します C:/itextExamples/

このコードを名前のファイルに保存します RotatingImage.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 RotatingImage {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/rotatingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                
      
      // Rotating the image       
      image.setRotationAngle(45);                       
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close(); 
      
      System.out.println("Image rotated");    
   } 
}

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

javac RotatingImage.java 
java RotatingImage

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

Image Rotated

指定したパスを確認すると、作成したPDFドキュメントが以下のように表示されます。