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
Publicación traducida automáticamente
Artículo escrito por mayanktyagi1709 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA