iText - Agregar una tabla

En este capítulo, veremos cómo crear un documento PDF y agregarle una tabla usando la biblioteca iText.

Agregar una tabla a un PDF

Puede crear un documento PDF vacío creando una instancia del Documentclase. Al crear una instancia de esta clase, debe pasar unPdfDocumentobjeto como parámetro de su constructor. Luego, para agregar una tabla al documento, debe crear una instancia delTable class y agregue este objeto al documento usando el add() método.

A continuación se muestran los pasos para crear un documento PDF con una tabla.

Paso 1: crear un objeto PdfWriter

los PdfWriterclass representa el DocWriter de un PDF. Esta clase pertenece al paquetecom.itextpdf.kernel.pdf. El constructor de esta clase acepta una cadena, que representa la ruta del archivo donde se creará el PDF.

Instancia del PdfWriter class pasando un valor de cadena (que representa la ruta donde necesita crear un PDF) a su constructor, como se muestra a continuación.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingTable.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Cuando el objeto de este tipo se pasa a un PdfDocument (clase), todos los elementos agregados a este documento se escribirán en el archivo especificado.

Paso 2: crear un objeto PdfDocument

los PdfDocumentclass es la clase que representa el documento PDF en iText. Esta clase pertenece al paquetecom.itextpdf.kernel.pdf. Para crear una instancia de esta clase (en modo de escritura), debe pasar un objeto de la clasePdfWriter a su constructor.

Cree una instancia de la clase PdfDocument pasando el objeto PdfWriter creado anteriormente a su constructor, como se muestra a continuación.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una vez que se crea un objeto PdfDocument, puede agregar varios elementos como página, fuente, archivo adjunto y controlador de eventos usando los métodos respectivos proporcionados por su clase.

Paso 3: crear el objeto de documento

los Document clase del paquete com.itextpdf.layoutes el elemento raíz al crear un PDF autosuficiente. Uno de los constructores de esta clase acepta un objeto de la clase.PdfDocument.

Instancia del Document clase pasando el objeto de la clase PdfDocument creado en los pasos anteriores, como se muestra a continuación.

// Creating a Document   
Document document = new Document(pdfDoc);

Paso 4: crear un objeto de tabla

los Tableclass representa una cuadrícula bidimensional llena de celdas ordenadas en filas y columnas. Pertenece al paquetecom.itextpdf.layout.element.

Instancia del Table clase como se muestra a continuación.

// Creating a table object 
float [] pointColumnWidths = {150F, 150F, 150F}; 
Table table = new Table(pointColumnWidths);

Paso 5: agregar celdas a la tabla

Crear un cell objeto instanciando el Cell clase del paquete com.itextpdf.layout.element. Agregue el contenido de la celda usando eladd() método de esta clase.

Finalmente, para agregar esta celda a la tabla, llame al addCell() método del Table clase y pasar el cell object como parámetro de este método, como se muestra a continuación.

// Adding cell 1 to the table 
Cell cell1 = new Cell();   // Creating a cell 
cell1.add("Name");         // Adding content to the cell 
table.addCell(cell1);      // Adding cell to the table       

// Adding cell 2 to the table Cell 
cell2 = new Cell();       // Creating a cell 
cell2.add("Raju");        // Adding content to the cell 
table.addCell(cell2);     // Adding cell to the table

Paso 6: agregar una tabla al documento

Añade el table objeto creado en el paso anterior utilizando el add() método del Document clase como se muestra a continuación.

// Adding list to the document 
document.add(table);

Paso 7: cerrar el documento

Cierre el documento con el close() método del Document clase, como se muestra a continuación.

// Closing the document 
document.close();

Ejemplo

El siguiente programa Java demuestra cómo crear un documento PDF y agregarle una tabla usando la biblioteca iText. Crea un documento PDF con el nombreaddingTable.pdf, le agrega una tabla y la guarda en la ruta C:/itextExamples/

Guarde este código en un archivo con el nombre AddingTable.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.Table;  

public class AddingTable {      
   public static void main(String args[]) throws Exception {           
      // Creating a PdfDocument object   
      String dest = "C:/itextExamples/addingTable.pdf";   
      PdfWriter writer = new PdfWriter(dest);       
         
      // Creating a PdfDocument object      
      PdfDocument pdf = new PdfDocument(writer);                  
      
      // Creating a Document object       
      Document doc = new Document(pdf);                       
         
      // Creating a table       
      float [] pointColumnWidths = {150F, 150F, 150F};   
      Table table = new Table(pointColumnWidths);    
      
      // Adding cells to the table       
      table.addCell(new Cell().add("Name"));       
      table.addCell(new Cell().add("Raju"));       
      table.addCell(new Cell().add("Id"));       
      table.addCell(new Cell().add("1001"));       
      table.addCell(new Cell().add("Designation"));       
      table.addCell(new Cell().add("Programmer"));                 
         
      // Adding Table to document        
      doc.add(table);                  
         
      // Closing the document       
      doc.close();
      System.out.println("Table created successfully..");   
   }     
}

Compile y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos:

javac AddingTable.java 
java AddingTable

Tras la ejecución, el programa anterior crea un documento PDF que muestra el siguiente mensaje.

Table created successfully..

Si verifica la ruta especificada, puede encontrar el documento PDF creado, como se muestra a continuación.