Itext-scaling-image
iText-画像のスケーリング
この章では、iTextライブラリを使用してPDFドキュメント内の画像を拡大縮小する方法を説明します。
PDF内の画像のスケーリング
PDFに画像を追加するには、追加する必要がある画像のオブジェクトを作成し、 Document クラスの* add()*メソッドを使用して追加します。 * setAutoScale()*メソッドを使用して画像を拡大縮小できます。
以下は、PDFドキュメントに存在する画像を拡大縮小する手順です。
ステップ1:PdfWriterオブジェクトの作成
以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。
このタイプのオブジェクトがPdfDocument(クラス)に渡されると、このドキュメントに追加されたすべての要素が指定されたファイルに書き込まれます。
ステップ2:PdfDocumentオブジェクトの作成
以下に示すように、上記で作成したPdfWriterオブジェクトをそのコンストラクターに渡すことにより、 PdfDocument クラスをインスタンス化します。
PdfDocumentオブジェクトを作成したら、そのクラスが提供するそれぞれのメソッドを使用して、ページ、フォント、添付ファイル、イベントハンドラーなどのさまざまな要素を追加できます。
ステップ3:Documentオブジェクトを作成する
パッケージ com.itextpdf.layout の Document クラスは、自給自足のPDFを作成する際のルート要素です。 このクラスのコンストラクターの1つは、クラスPdfDocumentのオブジェクトを受け入れます。
以下に示すように、前の手順で作成した PdfDocument クラスのオブジェクトを渡すことにより、 Document クラスをインスタンス化します。
ステップ4:Imageオブジェクトの作成
画像オブジェクトを作成するには、まず、 ImageDataFactory クラスの* create()メソッドを使用して *ImageData オブジェクトを作成します。 このメソッドのパラメーターとして、以下に示すように、画像のパスを表す文字列パラメーターを渡します。
ここで、 com.itextpdf.layout.element パッケージの Image クラスをインスタンス化します。 以下に示すように、インスタンス化中に、コンストラクターにパラメーターとして ImageData オブジェクトを渡します。
ステップ5:画像のスケーリング
- setAutoScale()*メソッドを使用して画像を拡大縮小できます。
ステップ6:文書に画像を追加する
次に、以下に示すように、 Document クラスの* add()メソッドを使用して、前の手順で作成した *image オブジェクトを追加します。
ステップ7:ドキュメントを閉じる
以下に示すように、 Document クラスの* close()*メソッドを使用してドキュメントを閉じます。
例
次のJavaプログラムは、iTextライブラリを使用してPDFドキュメントのドキュメントサイズに合わせて画像を拡大縮小する方法を示しています。 autoScale.pdf という名前のPDF文書を作成し、それに画像を追加し、ページの寸法に合わせてスケーリングし、パス C:/itextExamples/ に保存します。
このコードを SettingAutoScale.java という名前のファイルに保存します。
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します。
実行時に、上記のプログラムは、次のメッセージを表示するPDFドキュメントを作成します。
指定されたパスを確認すると、以下に示すように作成されたPDFドキュメントを見つけることができます。