iText-テーブルへのリストの追加
この章では、iTextライブラリを使用してPDFドキュメントのテーブルにリストを追加する方法を説明します。
PDFのテーブルへのリストの追加
をインスタンス化することにより、空のPDFドキュメントを作成できます。 Documentクラス。このクラスをインスタンス化するときに、合格する必要がありますPdfDocumentコンストラクターへのパラメーターとしてのオブジェクト。次に、ドキュメントにテーブルを追加するには、インスタンス化する必要がありますTable クラスを作成し、を使用してこのオブジェクトをドキュメントに追加します add() 方法。
追加するには list テーブルに、インスタンス化する必要があります List のクラス com.itextpdf.layout.element パッケージ化して、 cell を使用するオブジェクト add() の方法 Cell クラス。
以下は、テーブルのセルにリストを追加する手順です。
ステップ1:PdfWriterオブジェクトを作成する
ザ・ PdfWriterclassは、PDFのDocWriterを表します。このクラスはパッケージに属していますcom.itextpdf.kernel.pdf。このクラスのコンストラクターは、PDFが作成されるファイルのパスを表す文字列を受け入れます。
以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。
// Creating a PdfWriter
String dest = "C:/itextExamples/addingObjects.pdf";
PdfWriter writer = new PdfWriter(dest);
このタイプのオブジェクトがPdfDocument(クラス)に渡されると、このドキュメントに追加されたすべての要素が指定されたファイルに書き込まれます。
ステップ2:PdfDocumentオブジェクトを作成する
ザ・ PdfDocumentclassは、iTextでPDFドキュメントを表すクラスです。このクラスはパッケージcに属していますom.itextpdf.kernel.pdf。このクラスを(書き込みモードで)インスタンス化するには、クラスのオブジェクトを渡す必要がありますPdfWriter そのコンストラクタに。
インスタンス化する PdfDocument 以下に示すように、上記で作成したPdfWriterオブジェクトをコンストラクターに渡すことによってクラスを作成します。
// 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:テーブルオブジェクトを作成する
ザ・ Tableクラスは、行と列で順序付けられた、セルで満たされた2次元グリッドを表します。パッケージに属していますcom.itextpdf.layout.element。
インスタンス化する Table 以下に示すクラス。
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ステップ5:セルを作成する
作成する cell オブジェクトをインスタンス化して Cell パッケージのクラス com.itextpdf.layout、以下に示すように。
// Adding cell to the table
Cell listCell = new Cell(); // Creating a cell
ステップ6:リストオブジェクトを作成する
セルを作成したら、 list オブジェクトをインスタンス化して List パッケージのクラス com.itextpdf.layout.element。をインスタンス化してリストアイテムを作成しますListItem クラスを作成し、を使用して作成したアイテムを追加します add() の方法 List 以下に示すように、クラス。
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:テーブルのセルにリストを追加する
次に、上記で作成したリストを、を使用してテーブルのセルに追加します。 add()Cellクラスのメソッド。そして、を使用してこのセルをテーブルに追加しますaddCell() の方法 Table 以下に示すように、クラス。
listCell.add(list);
table.addCell(listCell);
ステップ8:ドキュメントにテーブルを追加する
追加します table 前の手順で作成されたオブジェクト add() の方法 Document 以下に示すように、クラス。
// Adding list to the document
document.add(table);
ステップ9:ドキュメントを閉じる
を使用してドキュメントを閉じます close() の方法 Document 以下に示すように、クラス。
// Closing the document
document.close();
例
次のJavaプログラムは、iTextライブラリを使用してPDFドキュメントのテーブルのセルにリストを追加する方法を示しています。名前の付いたPDFドキュメントを作成しますaddingObjects.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ドキュメントを見つけることができます。