USO DE IRONPDF FOR JAVA

Cómo añadir firmas digitales a los PDF en Java

Darrius Serrant
Darrius Serrant
26 de marzo, 2023
Actualizado 25 de agosto, 2024
Compartir:

En este artículo, aprenderá a añadir una firma digital a un PDF utilizando IronPDF en un programa Java.

IronPDF - Una biblioteca PDF Java

Descripción General de la Biblioteca PDF de IronPDF para Java es una biblioteca Java que permite a los desarrolladores crear nuevos documentos PDF desde cero a través de Convertir Cadenas HTML a PDF, Convertir Archivos HTML a PDF, Conversión de Word a PDF, o URL. Ayuda a manipular PDFs fácilmente añadiendo o eliminando contenido de ellos. Proporciona opciones de seguridad y firma digital para el documento PDF junto con la firma digital.

IronPDF no requiere ninguna otra biblioteca de terceros para realizar ninguna de sus tareas relacionadas con PDF. También ofrece la posibilidad de convertir entre distintos formatos de archivo. Proporciona soporte multiplataforma y está diseñado específicamente para Java, Scala y Kotlin.

Pasos para añadir firmas digitales a documentos PDF en Java

Requisitos previos

Para firmar digitalmente documentos PDF, se requieren los siguientes requisitos previos:

  • Cualquier IDE de Java (NetBeans, Eclipse, IntelliJ) Instalado - Este artículo utilizará IntelliJ. Puede descargar por separado el Kit de Desarrollo de Java desde Oracle Java SE Downloads.
  • Proyecto Maven Java para Automatización - Esto ayudará a descargar y gestionar dependencias en tu programa Java. Puedes descargar Maven desde la Página de Descarga de Apache Maven.
  • Biblioteca IronPDF descargada e instalada - Para descargar e instalar IronPDF, incluya su artefacto de dependencia Maven. Puedes agregar el siguiente fragmento de código en la etiqueta de dependencias del archivo pom.xml:

    <dependency>
       <groupId>com.ironsoftware</groupId>
       <artifactId>com.ironsoftware</artifactId>
       <version>2025.4.4</version>
    </dependency>
    XML
  • Otra dependencia necesaria es Slf4j-simple. Es opcional y se puede añadir utilizando la siguiente dependencia en el archivo pom.xml:
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
XML

Cómo añadir firmas digitales a PDFs en Java, Figura 1: archivo pom.xml

archivo pom.xml

IronPDF Importar paquetes Java

Se requieren las siguientes importaciones en el archivo principal. Permite utilizar las funciones de IronPDF para añadir una firma digital a un documento PDF:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

Ahora, todo lo necesario está hecho y listo para añadir una firma digital a los documentos PDF en Java utilizando IronPDF.

Crear archivo PDF o abrir archivo PDF existente

Para aprender cómo firmar digitalmente PDFs, es necesario crear un documento PDF desde cero o abrir un documento PDF existente. Este artículo creará un nuevo documento PDF para la firma PDF utilizando el método renderHtmlAsPdf de la clase PdfDocument. El código es el siguiente:

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
JAVA

El documento PDF se ha creado pero aún no se ha guardado. Por lo tanto, el siguiente paso es crear una firma digital y luego añadirla a este documento PDF y finalmente guardarlo.

Crear una firma digital

Tendrá que crear un certificado de firma digital utilizando Adobe Reader, que se utilizará en código Java para firmar digitalmente documentos PDF con esos datos. Puedes echar un vistazo a Cómo crear una firma digital en Adobe Reader.

Abre Adobe Reader y haz clic en Editar > Preferencias. A continuación, haga clic en Firmas y como más en Identidades y Certificados de confianza.

Cómo agregar firmas digitales a PDFs en Java, Figura 2: Las preferencias del proyecto

Las preferencias del proyecto

Añada el siguiente campo Firma para que el archivo .pfx o .p12 sea doc.

Cómo añadir firmas digitales a PDFs en Java, Figura 3: Diálogo para añadir identificación digital

Agregar cuadro de diálogo de ID digital

El siguiente ejemplo de código creará una nueva firma en código Java utilizando el archivo de certificado .pfx para Windows y el archivo .p12 para Mac junto con su clave privada (contraseña):

Signature signature = new Signature("Iron.pfx", "123456");
JAVA

Firmar archivo PDF con firma digital

IronPDF ayuda a agregar el certificado de firma utilizando la clase SignatureManager. [Método getSignature](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature()) ayuda a obtener la firma previa del documento PDF, y luego se puede añadir una nueva firma utilizando el Método SignPdfWithSignature con el archivo de firma como argumento. El código es el siguiente:

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
JAVA

Guardar archivo de firma PDF

Finalmente, guardemos el archivo PDF; de lo contrario, el PDF no está firmado usando el método saveAs de la clase PdfDocument. El código es sencillo y es el siguiente

pdf.saveAs("signed.pdf");
JAVA

Una vez compilado y ejecutado correctamente el código, el resultado es un PDF firmado digitalmente.

Cómo añadir firmas digitales a PDFs en Java, Figura 4: El archivo PDF de salida

El archivo PDF de salida

IronPDF también proporciona otras opciones de firma, que son opcionales y también pueden utilizarse para firmas digitales. Incluye imágenes de firmas manuscritas, imágenes de texto generadas por ordenador o imágenes digitalizadas. El siguiente ejemplo de código le ayuda a añadir algunas opciones de seguridad adicionales para la firma digital:

signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
JAVA

El código completo es el siguiente:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public static void main(String[] args) throws IOException {

    // Step 1. Create a PDF File Doc
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

    // Step 2. Create a Signature.
    Signature signature = new Signature("Iron.pfx", "123456");

    // Step 3. Sign the PDF with the PdfSignature.
    SignatureManager signatureManager = pdf.getSignature();
    signatureManager.SignPdfWithSignature(signature);

    // Step 4. The PDF is not signed until saved to file, stream, or byte array.
    pdf.saveAs("signed.pdf");
}
JAVA

Puedes consultar más información sobre la Firma Digital en el Ejemplo de Código de Firmas PDF. Si deseas agregar más seguridad e incluso editar metadatos, consulta el Ejemplo de Código de Seguridad y Metadatos.

Conclusión

Este artículo explica paso a paso cómo añadir firmas digitales a documentos PDF utilizando IronPDF for Java.

En primer lugar, el artículo cubría los componentes necesarios para trabajar con PDFs en Java utilizando IronPDF. A continuación, cree un documento PDF sencillo utilizando una cadena HTML. Se creó un archivo de certificado de Adobe Reader, que se utilizó para firmar el documento PDF original. IronPDF proporciona una clase Signature y SignatureManager, que ayuda a los usuarios a añadir un certificado y firmar un PDF con un campo de firma.

IronPDF facilita a los desarrolladores la realización de tareas relacionadas con PDF con facilidad y rapidez. Proporciona resultados precisos con PDF de píxeles perfectos. Para un lenguaje de programación versátil y ampliamente utilizado como Java, IronPDF es muy adecuado para trabajar con documentos PDF, ya que también es versátil y admite casi todas las operaciones con PDF. Además, se basa en las ya exitosas capacidades de .NET.

IronPDF también proporciona una conversión fácil desde diferentes formatos de archivo, utilizando el rápido IronPDFEngine diseñado específicamente para Java. Puede usar la biblioteca IronPDF para extraer o agregar texto, cargar y extraer imágenes, agregar encabezados y pies de página a PDFs, anotaciones, renderizar gráficos y diagramas en PDFs, trabajar con formularios PDF, y mucho más.

Puedes obtener información detallada sobre cómo usar IronPDF desde las páginas de Ejemplos de Código Java PDF.

IronPDF es gratuito para el desarrollo individual y ofrece una prueba gratuita sin marca de agua para generar documentos PDF. Puede obtener una licencia para uso comercial, y sus usuarios pueden obtener más información sobre la licencia en esta Página de Información Detallada sobre 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
Java PDF Converter (Tutorial de ejemplo de código)
SIGUIENTE >
Cómo leer archivos PDF en Java