Para representar datos de manera ordenada vamos a agregar una tabla de datos a un documento PDF usando la librería ITextSharp y el lenguaje C# .NET.
Insertar elementos visuales como logotipos, gráficos o capturas de pantalla es fundamental para que nuestros reportes y documentos PDF luzcan profesionales y sean fáciles de entender. La librería iTextSharp nos permite trabajar con los formatos más comunes, como PNG y JPG, de una manera muy sencilla.
Nota importante: Antes de continuar, te recomiendo leer nuestro artículo sobre Cómo crear un PDF con iTextSharp desde cero, ya que en esta guía partiremos de que ya conoces los conceptos básicos para generar el documento y abrir el archivo.
¿Qué aprenderemos en esta guía?
Cómo cargar una imagen desde una ruta local.
La diferencia entre escalar por tamaño fijo o por porcentaje.
Cómo posicionar la imagen dentro del flujo de nuestro reporte.
Crear una tabla con iTextSharp
Para crear una tabla con la librería iTextSharp usamos el siguiente código básico:
PdfPTable table = new PdfPTable(6);
// Esta es la primera fila
table.AddCell("Folio");
table.AddCell("Nombre");
table.AddCell("Domicilio");
table.AddCell("Email");
table.AddCell("Telefono");
table.AddCell("Movil");
// Segunda fila
table.AddCell("#1");
table.AddCell("Agustin Ramos");
table.AddCell("Mexico");
table.AddCell("evilnapsis@gmail.com");
table.AddCell("9371331142");
table.AddCell("000000000");
doc.Add(table);En la linea 1 creamos la tabla y le asignamos un numero de 6 columnas, esto quiere decir que cada fila constara de 6 columnas.
Entonces, en la linea 3 agregamos la primera columna y las fila se crea automáticamente, lo que debemos saber es que podemos agregar tantas filas como queramos y las filas se van a crear automáticamente, solo, tenemos que hacer coincidir los datos con el orden de las columnas.
Codigo completo
A continuación les dejo el código fuente completo, desde crear y abrir el documento hasta cerrarlo.
// Inicializamos el documento PDF
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream("hola.pdf", FileMode.Create)); // asignamos el nombre de archivo hola.pdf
// Importante Abrir el documento
doc.Open();
// Creamos un titulo personalizado con tamaño de fuente 18 y color Azul
Paragraph title = new Paragraph();
title.Font = FontFactory.GetFont(FontFactory.TIMES,18f,BaseColor.BLUE);
title.Add("Crear una tabla en PDF con iTextSharp");
doc.Add(title);
// Agregamos un parrafo vacio como separacion.
doc.Add(new Paragraph(" "));
// Empezamos a crear la tabla, definimos una tabla de 6 columnas
PdfPTable table = new PdfPTable(6);
// Esta es la primera fila
table.AddCell("Folio");
table.AddCell("Nombre");
table.AddCell("Domicilio");
table.AddCell("Email");
table.AddCell("Telefono");
table.AddCell("Movil");
// Segunda fila
table.AddCell("#1");
table.AddCell("Agustin Ramos");
table.AddCell("Mexico");
table.AddCell("evilnapsis@gmail.com");
table.AddCell("9371331142");
table.AddCell("000000000");
// Tercera fila
table.AddCell("#2");
table.AddCell("Jennifer Janice Jimenez");
table.AddCell("Mexico");
table.AddCell("");
table.AddCell("");
table.AddCell("111111");
// Cuarta fila
table.AddCell("#3");
table.AddCell("");
table.AddCell("");
table.AddCell("");
table.AddCell("");
table.AddCell("");
// Agregamos la tabla al documento
doc.Add(table);
// Ceramos el documento
doc.Close();Una vez cerrado el documento, se guarda en la ubicación que le asignamos, en la linea donde asignamos el nombre, podemos colocar una ubicación absoluta o bien, con solo escribir el nombre del archivo, este se guardara en la misma ubicación del ejecutable.
💡 Tip de experto: No te quedes solo en el diseño; combina tablas e imágenes en un flujo de trabajo real. Mira este ejemplo completo de reportes dinámicos con MySQL en PDF usando C# .NET.
