Itext-adding-lists-to-table
iText-リストをテーブルに追加する
この章では、iTextライブラリを使用してPDF文書の表にリストを追加する方法を説明します。
PDFのテーブルにリストを追加する
*Document* クラスをインスタンス化することにより、空のPDFドキュメントを作成できます。 このクラスをインスタンス化する際、コンストラクターにパラメーターとして *PdfDocument* オブジェクトを渡す必要があります。 次に、ドキュメントにテーブルを追加するには、 *Table* クラスをインスタンス化し、* add()*メソッドを使用してこのオブジェクトをドキュメントに追加する必要があります。
テーブルに*リスト*を追加するには、 com.itextpdf.layout.element パッケージの List クラスをインスタンス化し、 add メソッドを使用して cell オブジェクトに挿入する必要があります。 Cell クラス。
以下は、テーブルのセルにリストを追加する手順です。
ステップ1:PdfWriterオブジェクトの作成
*PdfWriter* クラスは、PDFのDoc Writerを表します。 このクラスは、パッケージ *com.itextpdf.kernel.pdf* に属します。 このクラスのコンストラクターは、PDFが作成されるファイルのパスを表す文字列を受け入れます。
以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。
//Creating a PdfWriter
String dest = "C:/itextExamples/addingObjects.pdf";
PdfWriter writer = new PdfWriter(dest);
このタイプのオブジェクトがPdfDocument(クラス)に渡されると、このドキュメントに追加されたすべての要素が指定されたファイルに書き込まれます。
ステップ2:PdfDocumentオブジェクトの作成
*PdfDocument* クラスは、iTextでPDFドキュメントを表すクラスです。 このクラスは、パッケージc * *om.itextpdf.kernel.pdf* *に属します。 (書き込みモードで)このクラスをインスタンス化するには、クラス *PdfWriter* のオブジェクトをコンストラクターに渡す必要があります。
以下に示すように、上記で作成したPdfWriterオブジェクトをそのコンストラクターに渡すことにより、 PdfDocument クラスをインスタンス化します。
//Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
PdfDocumentオブジェクトを作成したら、そのクラスが提供するそれぞれのメソッドを使用して、ページ、フォント、添付ファイル、イベントハンドラーなどのさまざまな要素を追加できます。
ステップ3:Documentオブジェクトを作成する
パッケージ com.itextpdf.layout の Document クラスは、自給自足のPDFを作成する際のルート要素です。 このクラスのコンストラクターの1つは、クラスPdfDocumentのオブジェクトを受け入れます。
以下に示すように、前の手順で作成した PdfDocument クラスのオブジェクトを渡すことにより、 Document クラスをインスタンス化します。
//Creating a Document
Document document = new Document(pdfDoc);
ステップ4:テーブルオブジェクトの作成
*Table* クラスは、行と列で順序付けられたセルで満たされた2次元グリッドを表します。 パッケージ *com.itextpdf.layout.element* に属します。
以下に示すように Table クラスをインスタンス化します。
//Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ステップ5:セルの作成
以下に示すように、パッケージ com.itextpdf.layout の Cell クラスをインスタンス化して、 cell オブジェクトを作成します。
//Adding cell to the table
Cell listCell = new Cell();//Creating a cell
ステップ6:リストオブジェクトの作成
セルを作成したら、パッケージ com.itextpdf.layout.element の List クラスをインスタンス化して、 list オブジェクトを作成します。 以下に示すように、 ListItem クラスをインスタンス化してリストアイテムを作成し、 List クラスの* add()*メソッドを使用して作成したアイテムを追加します。
List list = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list.add(item1);
list.add(item2);
list.add(item3);
ステップ7:テーブルのセルにリストを追加する
次に、Cellクラスの* add()メソッドを使用して、上記の作成済みリストをテーブルのセルに追加します。 そして、以下に示すように、 *Table クラスの* addCell()*メソッドを使用して、このセルをテーブルに追加します。
listCell.add(list);
table.addCell(listCell);
ステップ8:文書に表を追加する
以下に示すように、 Document クラスの* add()メソッドを使用して、前の手順で作成した *table オブジェクトを追加します。
//Adding list to the document
document.add(table);
ステップ9:ドキュメントを閉じる
以下に示すように、 Document クラスの* close()*メソッドを使用してドキュメントを閉じます。
//Closing the document
document.close();
例
次のJavaプログラムは、iTextライブラリを使用してPDFドキュメント内のテーブルのセルにリストを追加する方法を示しています。 addingObjects.pdf という名前のPDFドキュメントを作成し、テーブルを追加し、そのセルの1つにリストを挿入して、パス C:/itextExamples/ に保存します
このコードを AddingListsToTable.java という名前のファイルに保存します。
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.ListItem;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class AddingListsToTable {
public static void main(String args[]) throws Exception {
//Creating a PdfWriter object
String file = "C:/itextExamples/addingObjects.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
//Creating a Document object
Document doc = new Document(pdfDoc);
//Creating a table
float [] pointColumnWidths = {300F, 300F};
Table table = new Table(pointColumnWidths);
//Adding row 1 to the table
Cell c1 = new Cell();
c1.add("Java Related Tutorials");
c1.setTextAlignment(TextAlignment.LEFT);
table.addCell(c1);
List list1 = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list1.add(item1);
list1.add(item2);
list1.add(item3);
Cell c2 = new Cell();
c2.add(list1);
c2.setTextAlignment(TextAlignment.LEFT);
table.addCell(c2);
//Adding row 2 to the table
Cell c3 = new Cell();
c3.add("No SQL Databases");
c3.setTextAlignment(TextAlignment.LEFT);
table.addCell(c3);
List list2 = new List();
list2.add(new ListItem("HBase"));
list2.add(new ListItem("Neo4j"));
list2.add(new ListItem("MongoDB"));
Cell c4 = new Cell();
c4.add(list2);
c4.setTextAlignment(TextAlignment.LEFT);
table.addCell(c4);
//Adding Table to document
doc.add(table);
//Closing the document
doc.close();
System.out.println("Lists added to table successfully..");
}
}
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-
javac AddingListsToTable.java
java AddingListsToTable
実行時に、上記のプログラムはPDFドキュメントを作成し、次のメッセージを表示します。
Lists added to table successfully..
指定したパスを確認すると、以下に示すように、作成されたPDFドキュメントを見つけることができます。