iText - Aggiunta di elenchi a una tabella
In questo capitolo vedremo come aggiungere un elenco a una tabella in un documento PDF utilizzando la libreria iText.
Aggiunta di elenchi a una tabella in un PDF
È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro del suo costruttore. Quindi, per aggiungere una tabella al documento, è necessario creare un'istanza del fileTable class e aggiungi questo oggetto al documento usando il add() metodo.
Per aggiungere un file list alla tabella, è necessario creare un'istanza del file List classe di com.itextpdf.layout.element pacchetto e inserirlo nel file cell oggetto utilizzando il add() metodo del Cell classe.
Di seguito sono riportati i passaggi per aggiungere un elenco alla cella di una tabella.
Passaggio 1: creazione di un oggetto PdfWriter
Il PdfWriterclass rappresenta il Doc Writer per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.
Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito
// Creating a PdfWriter
String dest = "C:/itextExamples/addingObjects.pdf";
PdfWriter writer = new PdfWriter(dest);
Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.
Passaggio 2: creazione di un oggetto PdfDocument
Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchetto com.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.
Istanziare il file PdfDocument class passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.
Passaggio 3: creazione dell'oggetto Documento
Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.
Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.
// Creating a Document
Document document = new Document(pdfDoc);
Passaggio 4: creazione di un oggetto tabella
Il Tableclass rappresenta una griglia bidimensionale piena di celle, ordinate in righe e colonne. Appartiene al pacchettocom.itextpdf.layout.element.
Istanziare il file Table classe come mostrato di seguito.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Passaggio 5: creazione della cella
Creare un cell oggetto istanziando il file Cell classe del pacchetto com.itextpdf.layout, come mostrato di seguito.
// Adding cell to the table
Cell listCell = new Cell(); // Creating a cell
Passaggio 6: creazione dell'oggetto elenco
Dopo aver creato la cella, crea un file list oggetto istanziando il file List classe del pacchetto com.itextpdf.layout.element. Crea gli elementi dell'elenco istanziando il fileListItem class e aggiungi gli elementi creati utilizzando il add() metodo del List classe, come mostrato di seguito.
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);
Passaggio 7: aggiunta di un elenco alla cella di una tabella
Ora aggiungi l'elenco creato sopra alla cella della tabella usando il add()metodo della classe Cell. E aggiungi questa cella alla tabella usando iladdCell() metodo del Table classe, come mostrato di seguito.
listCell.add(list);
table.addCell(listCell);
Passaggio 8: aggiunta di una tabella al documento
Aggiungi il table oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe, come mostrato di seguito.
// Adding list to the document
document.add(table);
Passaggio 9: chiusura del documento
Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.
// Closing the document
document.close();
Esempio
Il seguente programma Java mostra come aggiungere un elenco a una cella di una tabella in un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomeaddingObjects.pdf, aggiunge una tabella, inserisce un elenco in una delle sue celle e lo salva nel percorso C:/itextExamples/
Salva questo codice in un file con il nome 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..");
}
}
Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:
javac AddingListsToTable.java
java AddingListsToTable
Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.
Lists added to table successfully..
Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.