la librería iText, la necesidad de crear tablas para generar reportes de datos, por fortuna el procedimiento es muy sencillo.
Cree un proyecto Java con la librería iText, esto se describió en una entrada anterior, hecho esto cree un paquete tablas y una clase Tablas, en la que ponga el siguiente código, las partes que generan la tabla se describirán después
package tablas;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
public class Tablas {
static public void main(String[] args)
{
Document document = new Document();
try{
PdfWriter.getInstance(document, new FileOutputStream("tablas.pdf"));
document.open();
// Este codigo genera una tabla de 3 columnas
PdfPTable table = new PdfPTable(3);
// addCell() agrega una celda a la tabla, el cambio de fila
// ocurre automaticamente al llenar la fila
table.addCell("Celda 1");
table.addCell("Celda 2");
table.addCell("Celda 3");
table.addCell("Celda 4");
table.addCell("Celda 5");
table.addCell("Celda 6");
table.addCell("Celda 7");
table.addCell("Celda 8");
table.addCell("Celda 9");
// Si desea crear una celda de mas de una columna
// Cree un objecto Cell y cambie su propiedad span
PdfPCell celdaFinal = new PdfPCell(new Paragraph("Final de la tabla"));
// Indicamos cuantas columnas ocupa la celda
celdaFinal.setColspan(3);
table.addCell(celdaFinal);
// Agregamos la tabla al documento
document.add(table);
document.close();
}catch(Exception e)
{
System.err.println("Ocurrio un error al crear el archivo");
System.exit(-1);
}
}
}
El archivo resultado tablas.pdf lucirá de este modo:
Figura 1 - Resultado |
Los comentarios indican donde esta el código notable, el cual describiremos a continuación:
PdfPTable table = new PdfPTable(3);
Genera un objecto PdfPTable , el constructor nos permite indicar el numero de *columnas* que
tendrá la tabla.
Genera un objecto PdfPTable , el constructor nos permite indicar el numero de *columnas* que
tendrá la tabla.
table.addCell("Celda 1");
Agrega una celda a la tabla, permite agregar varios objectos, en este caso una cadena de texto
Notara que no hay mención de un salto de columna o similar, esto no es necesario, ya que la función
automáticamente realiza el salto de fila.
Agrega una celda a la tabla, permite agregar varios objectos, en este caso una cadena de texto
Notara que no hay mención de un salto de columna o similar, esto no es necesario, ya que la función
automáticamente realiza el salto de fila.
PdfPCell celdaFinal = new PdfPCell(new Paragraph("Final de la tabla"));
Esta linea de código crea un objecto PdfPCell, el cual representa una celda en la tabla, posiblemente
se pregunte por que fue necesario crear este objecto aparte, la razón es sencilla para acceder a sus
propiedades, como lo es setColSpan.
Esta linea de código crea un objecto PdfPCell, el cual representa una celda en la tabla, posiblemente
se pregunte por que fue necesario crear este objecto aparte, la razón es sencilla para acceder a sus
propiedades, como lo es setColSpan.
celdaFinal.setColspan(3);
Esta propiedad de los objectos PdfPCell nos permite indicar cuantas columnas debe de abarcar la celda muy útil para la generación de títulos, o como en este caso pies de la tabla.
Esta propiedad de los objectos PdfPCell nos permite indicar cuantas columnas debe de abarcar la celda muy útil para la generación de títulos, o como en este caso pies de la tabla.
table.addCell(celdaFinal);
Esta sobrecarga del método addCell agrega la celda que acabamos de crear a la tabla.
Esto cubre lo básico del uso de iText, seguramente notara lo sencillo que seria usar estas funciones con ciclos para poder generar una tabla de reporte bastante completa
Espero que esta información halla sido de utilidad y nos vemos en otra entrada.
Esta sobrecarga del método addCell agrega la celda que acabamos de crear a la tabla.
Esto cubre lo básico del uso de iText, seguramente notara lo sencillo que seria usar estas funciones con ciclos para poder generar una tabla de reporte bastante completa
Espero que esta información halla sido de utilidad y nos vemos en otra entrada.
Referencias: