Generación de PDF en Java con iText

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es iText y para qué sirve?

iText es una potente biblioteca para Java, diseñada para la creación y manipulación de documentos PDF. Permite generar archivos PDF de forma programática, añadiendo texto, imágenes, tablas, formularios y anotaciones. La biblioteca se utiliza ampliamente en aplicaciones empresariales para automatizar informes, facturas, contratos y otros documentos. La principal ventaja de iText es el control total sobre el contenido y la estructura del PDF.

Instalación de iText

Para incluir iText en un proyecto Maven, añade la dependencia en pom.xml:

<dependency>    <groupId>com.itextpdf</groupId>    <artifactId>itext7-core</artifactId>    <version>7.2.5</version>    <type>pom</type></dependency>

Para Gradle:

implementation 'com.itextpdf:itext7-core:7.2.5'

Funciones principales de iText

  • Creación de PDF desde cero: añadir párrafos, tablas, imágenes.
  • Trabajo con formularios: rellenar y extraer datos de AcroForms.
  • Cifrado y protección: establecer contraseñas, restringir la impresión o copia.
  • Conversión de HTML a PDF: mediante el módulo html2pdf.
  • Combinar y dividir páginas: trabajar con múltiples documentos.

Ejemplo de código en Java

Vamos a crear un PDF simple con texto y una tabla:

import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Paragraph;import com.itextpdf.layout.element.Table;

public class PdfGenerator { public static void main(String[] args) throws Exception { String dest = "example.pdf"; PdfWriter writer = new PdfWriter(dest); PdfDocument pdf = new PdfDocument(writer); Document document = new Document(pdf);

// Añadimos un título document.add(new Paragraph("¡Hola, mundo!"));

// Creamos una tabla 3x2 Table table = new Table(3); table.addCell("Nombre"); table.addCell("Edad"); table.addCell("Ciudad"); table.addCell("Ana"); table.addCell("25"); table.addCell("Madrid"); table.addCell("Juan"); table.addCell("30"); table.addCell("Barcelona");

document.add(table); document.close(); System.out.println("PDF creado: " + dest); }}

Cuándo usar iText

La biblioteca es ideal para:

  • Generación de informes y facturas en aplicaciones web (Spring Boot, Java EE).
  • Automatización del flujo de documentos: contratos, actas, albaranes.
  • Creación de formularios PDF interactivos para que los usuarios los rellenen.
  • Conversión de plantillas HTML a PDF para impresión o envío.

iText es el estándar de facto para trabajar con PDF en Java. Alternativas: Apache PDFBox (de más bajo nivel) y Aspose.PDF (comercial).

Recommendations