iText 7 para Java: Guía completa para crear y editar PDF
iText 7 es una potente librería de código abierto (AGPL) para Java, diseñada para la creación, manipulación y renderizado programático de documentos PDF. Es la sucesora de la popular librería iText 5 y ofrece una arquitectura modular completamente rediseñada, enfocada en el rendimiento, la flexibilidad y la facilidad de uso. iText 7 permite a los desarrolladores resolver una amplia gama de tareas: desde la generación de facturas e informes simples hasta la creación de documentos complejos con validez legal, que incluyen firmas digitales, formularios y metadatos.
¿Por qué usar iText 7? En el mundo actual, el PDF es el formato universal para el intercambio de documentos, garantizando que su apariencia sea consistente en cualquier dispositivo. Crear archivos PDF manualmente es tedioso e ineficiente, especialmente cuando se trabaja con grandes volúmenes de datos. iText 7 automatiza este proceso, brindando a los desarrolladores Java un control total sobre cada aspecto del documento: desde agregar texto e imágenes hasta crear formularios interactivos y gestionar permisos de acceso. Es indispensable en sistemas de gestión documental, comercio electrónico, banca y cualquier otra aplicación que requiera la generación o el procesamiento de PDF.
La librería es compatible con todas las especificaciones PDF más recientes, incluido PDF 2.0. También ofrece módulos adicionales (add-ons) para trabajar con conversión HTML (pdfHTML), reconocimiento óptico de caracteres (pdfOCR), creación de SVG (pdfSVG) y procesamiento de imágenes (pdfImage). Es importante destacar que iText 7 se distribuye bajo una licencia dual: AGPL (requiere que el código fuente de tu aplicación sea abierto) y comercial (para uso propietario).
Instalación
Para instalar iText 7 en tu proyecto Java, utiliza el sistema de compilación Maven o Gradle. A continuación se muestra el comando exacto para agregar las dependencias en el archivo pom.xml (Maven).
<!-- pom.xml -->
<dependencies>
<!-- Módulo principal de iText 7 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>8.0.4</version> <!-- Verifica la versión más reciente en Maven Central -->
<type>pom</type>
</dependency>
</dependencies>
Para Gradle (build.gradle):
implementation 'com.itextpdf:itext7-core:8.0.4'
Si solo necesitas módulos específicos (por ejemplo, kernel, layout, io), puedes agregarlos por separado:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>8.0.4</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>8.0.4</version>
</dependency>
Inicio rápido: ejemplo mínimo funcional
El siguiente código crea un documento PDF simple con el texto "¡Hola, Mundo!" y lo guarda en el archivo HolaMundo.pdf.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import java.io.FileNotFoundException;
public class HolaMundo {
public static void main(String[] args) throws FileNotFoundException {
// 1. Creamos un PdfWriter que escribirá los datos en el archivo
PdfWriter writer = new PdfWriter("HolaMundo.pdf");
// 2. Creamos un PdfDocument, el objeto que representa el documento PDF
PdfDocument pdf = new PdfDocument(writer);
// 3. Creamos un Document, un objeto de alto nivel para agregar elementos (texto, tablas, etc.)
Docum También en la biblioteca
Moesif API Monitoring para Node.js
Migraciones de bases de datos en C# (.NET): Entity Framework, FluentMigrator y otros enfoques
Nodemailer para JavaScript (Node.js): guía completa con ejemplos
Migraciones de bases de datos en TypeScript: guía completa de herramientas y enfoques