¿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).