Itext-formatting-cell-contents
iText-セルの内容のフォーマット
この章では、iTextライブラリを使用してPDFドキュメントを作成し、テーブルを追加し、テーブル内のセルのコンテンツをフォーマットする方法を説明します。
テーブル内のセルのフォーマット
Documentクラスをインスタンス化することにより、空のPDF Document を作成できます。 このクラスをインスタンス化する際、 PdfDocument オブジェクトをパラメーターとしてコンストラクターに渡す必要があります。 次に、ドキュメントにテーブルを追加するには、 Table クラスをインスタンス化し、* add()メソッドを使用してこのオブジェクトをドキュメントに追加する必要があります。 *Cell クラスのメソッドを使用して、テーブル内のセルの内容をフォーマットできます。
以下は、テーブル内のセルの内容をフォーマットする手順です。
ステップ1:PdfWriterオブジェクトの作成
以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。
このタイプのオブジェクトがPdfDocument(クラス)に渡されると、このドキュメントに追加されたすべての要素が指定されたファイルに書き込まれます。
ステップ2:PdfDocumentオブジェクトの作成
以下に示すように、上記で作成した PdfWriter オブジェクトをコンストラクターに渡すことで、 PdfDocument クラスをインスタンス化します。
ステップ3:Documentオブジェクトを作成する
パッケージ com.itextpdf.layout の Document クラスは、自給自足のPDFを作成する際のルート要素です。 このクラスのコンストラクターの1つは、クラスPdfDocumentのオブジェクトを受け入れます。
以下に示すように、前の手順で作成した PdfDocument クラスのオブジェクトを渡すことにより、 Document クラスをインスタンス化します。
ステップ4:テーブルオブジェクトの作成
以下に示すように、Tableクラスをインスタンス化します。
ステップ5:セルの作成
パッケージ com.itextpdf.layout.element の Cell クラスをインスタンス化して、 cell オブジェクトを作成します。 以下に示すように、 Cell クラスの* add()*メソッドを使用して、セルの内容を追加します。
ステップ6:セルに背景を追加する
セルを作成して内容を追加したら、セルをフォーマットできます。 たとえば、* setBackgroundColor()、setBorder()、setTextAlignment()*などのセルクラスのさまざまなメソッドを使用して、背景の設定、セル内のテキストの配置、テキストの色の変更などを行うことができます。
以下に示すように、前の手順で作成したセルに背景色、境界線、およびテキストの配置を設定できます。
ステップ7:テーブルにセルを追加する
最後に、このセルをテーブルに追加するには、以下に示すように、 Table クラスの* addCell()メソッドを呼び出し、 *cell オブジェクトをパラメーターとしてこのメソッドに渡します。
ステップ8:文書に表を追加する
以下に示すように、 Document クラスの* add()メソッドを使用して、前の手順で作成した *table オブジェクトを追加します。
ステップ9:ドキュメントを閉じる
以下に示すように、 Document クラスの* close()*メソッドを使用してドキュメントを閉じます。
例
次のJavaプログラムは、iTextライブラリを使用してテーブル内のセルのコンテンツをフォーマットする方法を示しています。 addingBackground.pdf という名前のPDFドキュメントを作成し、それにテーブルを追加し、そのセルのコンテンツをフォーマットし、パス C:/itextExamples/ に保存します
このコードを BackgroundToTable.java という名前のファイルに保存します。
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-
実行時に、上記のプログラムはPDFドキュメントを作成し、次のメッセージを表示します。
指定したパスを確認すると、以下に示すように、作成されたPDFドキュメントを見つけることができます。