USO DE IRONPDF FOR JAVA

Java PDF Stamper (Tutorial para principiantes)

Este artículo creará un sellador de PDF en Java utilizando la biblioteca IronPDF.

IronPDF - Biblioteca PDF Java

IronPDF es una biblioteca Java para PDF para generar, leer y editar documentos PDF. Permite a los usuarios trabajar con documentos PDF con facilidad y precisión. IronPDF for Java se basa en el éxito de IronPDF for .NET y ofrece eficacia en distintas plataformas. IronPDF for Java utiliza IronPdfEngine, que es rápido y está optimizado para el rendimiento.

IronPDF ayuda a extraer texto e imágenes de archivos PDF y otros objetos de archivos PDF. Ayuda a crear PDFs a partir de una cadena HTML, URL e imágenes. También permite la conversión entre distintos formatos de archivo. Puede agregar fácilmente nuevo contenido y añadir firmas digitales a PDFs junto con metadatos del documento a documentos PDF existentes. Está diseñado especialmente para Java 8+, Scala y Kotlin, en cualquier plataforma Windows, Linux y Cloud.

Pasos para crear PDF Stamper utilizando IronPDF en la aplicación Java

Requisitos previos

Para crear un PDF Stamper, necesitará los siguientes requisitos previos:

1. Java IDE

Puede utilizar cualquier IDE compatible con Java. Hay un montón de IDEs disponibles para el desarrollo en Java. Esta demostración utilizará IntelliJ IDE. Puedes utilizar NetBeans, Eclipse, etc.

2. Proyecto Maven

Maven es un gestor de dependencias y permite controlar el proyecto Java. Maven para Java se puede descargar desde el sitio web oficial de Maven. IntelliJ IDE para Java contiene soporte para Maven.

3. IronPDF

Puede descargar e instalar IronPDF for Java de varias formas.

  • Agregar la dependencia de IronPDF en el archivo pom.xml en el proyecto Maven.
<!-- Add IronPDF Dependency Here -->
<!-- Add IronPDF Dependency Here -->
XML

4. Slf4j

Esta dependencia también es necesaria para estampar contenido en un documento PDF existente. Se puede agregar utilizando el gestor de dependencias de Maven en IntelliJ o descargado directamente desde el sitio web de Maven. Añade la siguiente dependencia al archivo pom.xml:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
XML

Añadir importaciones necesarias

Una vez que se hayan instalado todos los requisitos previos, el siguiente paso es importar los paquetes necesarios de IronPDF para trabajar con documentos PDF. Añade el siguiente código en la parte superior del archivo Main.java:

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
JAVA

Clave de licencia

Algunos métodos disponibles en IronPDF requieren una licencia para ser utilizados. Puedes comprar una licencia o probar IronPDF gratis con una licencia de prueba. Puede configurar la tecla de la siguiente manera:

License.setLicenseKey("YOUR-KEY");
License.setLicenseKey("YOUR-KEY");
JAVA

Abrir un Documento PDF Existente

Para importar un documento existente para estampar nuevo contenido, se utiliza la clase PdfDocument. Su método estático fromFile se utiliza para cargar un archivo desde una ruta específica con el nombre real del archivo. El código es el siguiente:

PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
JAVA

Documento original cargado:

Java PDF Stamper (Tutorial para Principiantes), Figura 1: El documento de muestra

El documento de muestra

Añadir nuevo contenido HTML

IronPDF proporciona un paquete de sellos. Permite un montón de opciones útiles de sellado como BarcodeStamper, HtmlStamper, ImageStamper, TextStamper, y otros para la alineación de contenido. Para agregar nuevo contenido HTML a este documento PDF se utilizará la clase HtmlStamper. Usemos el archivo de la sección anterior y añadamos algo de contenido. El siguiente código ayuda a realizar esta tarea:

HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
JAVA

Se crea un objeto HtmlStamper y luego se utiliza su método setHtml para adjuntar nuevo código HTML. El siguiente paso es aplicarlo al documento PDF existente para crear una nueva versión en PDF.

Añadir todos los elementos interactivos al documento PDF

Usando el objeto PdfDocument creado anteriormente para agregar el código HTML al documento existente. Proporciona applyStamp con dos sobrecargas, una que acepta solo el contenido como un objeto Stamper y la otra con selección de página también.

pd.applyStamp(htmlStamper);
pd.applyStamp(htmlStamper);
JAVA

Esto añadirá la descripción de la cadena al documento existente.

Guardar los cambios en el PDF

Para guardar el archivo, use el método saveAs del objeto PdfDocument.

pd.saveAs("stamped.pdf");
pd.saveAs("stamped.pdf");
JAVA

Java PDF Stamper (Tutorial para principiantes), Figura 2: El archivo PDF estampado

El archivo PDF sellado

La cadena HTML se añade a cada página del documento PDF y en el centro de cada página.

Sello a páginas específicas

Puedes usar otra sobrecarga del método applyStamp para añadir el contenido a una página específica.

pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
JAVA

La clase PageSelection proporciona diferentes métodos para controlar el número de página. firstPage, lastPage, allPages y pageRange son algunos métodos disponibles para agregar el contenido de manera adecuada.

Alineando el Contenido

Puede usar setVerticalAlignment, setHorizontalAlignment, métodos setWidth, setHeight en cada clase Stamper para ajustar la posición del contenido añadido al documento PDF existente. El siguiente ejemplo de código ayudará a colocar el texto en la parte inferior izquierda de la página:

htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
JAVA

Java PDF Stamper (Tutorial para principiantes), Figura 3: El archivo PDF de salida con alineación del estampador

El archivo PDF de salida con alineación de estamper

Puede utilizar los métodos setVerticalOffset y setHorizontalOffset para ajustar aún más la posición del contenido.

Para obtener más información sobre el trabajo con archivos PDF usando IronPDF, visite este ejemplo de código para la conversión de HTML a PDF en Java.

Estampar metadatos, firma y opciones de seguridad en un documento existente

IronPDF for Java es una biblioteca versátil y ofrece la posibilidad de añadir descripciones de archivos en forma de metadatos, permisos de usuario, contraseña de usuario, añadir firma digital y crear documentos firmados para guardar la versión del documento PDF.

Metadatos

// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
JAVA

Opciones de seguridad

También puede controlar las opciones de seguridad de su archivo PDF para que los datos queden a salvo de usos no autorizados. Proporciona opciones para establecer setAllowUserPrinting, setAllowUserEdits, setAllowUserCopyPasteContent, setAllowUserAnnotations, setUserPassword, setAllowUserFormData parámetros a verdadero o falso. El siguiente código de ejemplo le ayudará a establecer todas las propiedades de los objetos mencionadas anteriormente.

// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
JAVA

Contraseña de usuario

// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
JAVA

Para estampar firmas digitales en el archivo real, puedes ver este ejemplo de código detallado para firmas PDF.

Resumen

En este artículo se explica cómo estampar contenido en un documento PDF existente en Java. Hay un paquete de sello con un montón de clases de sellado útiles, que se pueden usar para agregar contenido en múltiples formatos a un PDF en cualquier ubicación deseada en el documento original.

IronPDF es una biblioteca versátil, como se puede ver en los ejemplos de código anteriores también. Es bastante simple pero a la vez una herramienta muy poderosa para la generación y manipulación de PDF. Esto ayuda a los desarrolladores a integrar fácilmente todas las funcionalidades de PDF en un único programa de aplicación Java.

IronPDF es gratuito para un único desarrollo y ofrece una licencia de prueba gratuita sin marca de agua para probar su funcionalidad completa. Sin embargo, para uso comercial, debe estar licenciado con IronPDF.

Por último, IronPDF ofrece una promoción especial para comprar suites de Iron Software en la que los desarrolladores pueden adquirir los cinco productos de Iron Software por el precio de dos licencias.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Informática de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde una edad temprana, veía la computación como algo misterioso y accesible, lo que la convertía en el medio perfecto para la creatividad y la resolución de problemas.

En Iron Software, Darrius disfruta creando cosas nuevas y simplificando conceptos complejos para hacerlos más comprensibles. Como uno de nuestros desarrolladores residentes, también se ha ofrecido como voluntario para enseñar a los estudiantes, compartiendo su experiencia con la próxima generación.

Para Darrius, su trabajo es gratificante porque es valorado y tiene un impacto real.

< ANTERIOR
Cómo crear un PDF a partir de una plantilla en Java
SIGUIENTE >
Qué es Maven en Java (Tutorial sobre su funcionamiento)