Agregar tablas anidadas a un PDF usando Java

Podemos agregar tablas anidadas a un PDF instalando la clase de documento. Al instanciar esta clase, le gustaría pasar un objeto PdfDocument como parámetro a su constructor. Luego, para presentar una tabla en el documento, le gustaría crear una instancia de la clase Table y agregar este objeto al documento usando el método add().

Para agregar una tabla a esta tabla, debe crear otra tabla (tabla anidada) y pasarla al objeto de celda usando el método add() de la clase Cell.

A continuación se muestran los pasos para agregar las tablas anidadas a un PDF usando Java:

1. Cree un objeto de escritor de PDF

La clase PdfWriter aquí representa el DocWriter para un PDF. Esta clase pertenece al paquete com.itextpdf.kernel.pdf. El constructor de esta clase acepta una string, que representa el rastro del archivo donde se creará el PDF.

Cree la clase PdfWriter pasando un valor de string (que representa la ruta en la que le gustaría crear un PDF) a su constructor.

2. Cree un objeto PdfDocument

La clase PdfDocument es la clase que representa el documento PDF en iText. Esta clase pertenece al paquete com.itextpdf.kernel.pdf. Para crear esta clase (en modo escritura), le gustaría pasar un objeto de la categoría PdfWriter a su constructor.

Cree la clase PdfDocument pasando el objeto PdfWriter creado anteriormente a su constructor.

3. Crea el objeto Documento

La clase Documento del paquete com.itextpdf.layout es el elemento raíz al crear un PDF autosuficiente. uno de los constructores de esta clase acepta un objeto de la categoría PdfDocument.

Cree la clase Documento pasando el elemento de la categoría PdfDocument creado en los pasos anteriores.

4. Crea un objeto Tabla

La clase Table representa una cuadrícula bidimensional repleta de celdas, ordenadas en filas y columnas. Pertenece al paquete com.itextpdf.layout.element.

5. Crea la celda

Cree un objeto de celda creando la clase Cell del paquete com.itextpdf.layout.

6. Crear tabla anidada

Después de crear la celda, cree una tabla anidada y rellene sus celdas.

7. Agregue una tabla anidada a la celda

Agrega la tabla anidada creada en el paso anterior a la celda de la tabla contenedora usando el método add() de la clase Cell. Agregue esta celda a la tabla de contenedores usando el método addCell() de la clase Table

8. Agrega la tabla al documento

Agregue el objeto de tabla creado en el paso anterior usando el método add() de la clase Document

9. Cerrar el Documento

Cierra el documento usando el método close() de la clase Document

Ahora, veamos algunos ejemplos de cómo podemos aplicar estos pasos

Java

// Java Program to add Nested Tables to a PDF
  
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 nestedTablesPdf {
    public static void main(String args[]) throws Exception
    {
        // Creating a PdfWriter object
        String destination
            = "C:/itextExamples/addingNestedTable.pdf";
        PdfWriter writer = new PdfWriter(destination);
  
        // Creating a PdfDocument object
        PdfDocument pdfDoc = new PdfDocument(writer);
  
        // Creating a Document object
        Document doc = new Document(pdfDoc);
  
        // Creating a table
        float[] pointColumnWidths1 = { 130f, 130f };
        Table table = new Table(pointColumnWidths1);
  
        // Populating row 1 and adding it to the table
        Cell cell1 = new Cell();
        cell1.add("Name");
        table.addCell(cell1);
  
        Cell cell2 = new Cell();
        cell2.add("Mayank Tyagi");
        table.addCell(cell2);
  
        // Populating row 2 and adding it to the table
        Cell cell3 = new Cell();
        cell3.add("Designation");
        table.addCell(cell3);
  
        Cell cell4 = new Cell();
        cell4.add("Tech. Content Writer");
        table.addCell(cell4);
  
        // Populating row 3 and adding it to the table
        Cell cell5 = new Cell();
        cell5.add("Company");
        table.addCell(cell5);
  
        Cell cell6 = new Cell();
        cell6.add("GeeksforGeeks");
        table.addCell(cell6);
  
        // Creating nested table for contact
        float[] pointColumnWidths2 = { 130f, 130f };
        Table nestedTable = new Table(pointColumnWidths2);
  
        // Populating row 1 and adding it to the nested
        // table
        Cell nested1 = new Cell();
        nested1.add("Phone");
        nestedTable.addCell(nested1);
  
        Cell nested2 = new Cell();
        nested2.add("1122334455");
        nestedTable.addCell(nested2);
  
        // Populating row 2 and adding it to the nested
        // table
        Cell nested3 = new Cell();
        nested3.add("email");
        nestedTable.addCell(nested3);
  
        Cell nested4 = new Cell();
        nested4.add("Mayanktyagi1709@gmail.com");
        nestedTable.addCell(nested4);
  
        // Populating row 3 and adding it to the nested
        // table
        Cell nested5 = new Cell();
        nested5.add("Address");
        nestedTable.addCell(nested5);
  
        Cell nested6 = new Cell();
        nested6.add("Delhi");
        nestedTable.addCell(nested6);
  
        // Adding table to the cell
        Cell cell7 = new Cell();
        cell7.add("Contact");
        table.addCell(cell7);
  
        Cell cell8 = new Cell();
        cell8.add(nestedTable);
        table.addCell(cell8);
  
        // Adding table to the document
        doc.add(table);
  
        // Closing the document
        doc.close();
        System.out.println("Table successfully added");
    }
}

Producción

Add Nested tables to a PDF

Publicación traducida automáticamente

Artículo escrito por mayanktyagi1709 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *