Saltar al pie de página
USANDO IRONPDF PARA JAVA

Cómo Añadir Firmas Digitales a PDFs en Java

En este artículo, aprenderás cómo agregar una firma digital a un PDF usando IronPDF en un programa Java.

IronPDF - Una biblioteca PDF para Java

Visión General de la Biblioteca Java PDF de IronPDF es una biblioteca de Java que permite a los desarrolladores crear nuevos documentos PDF desde cero a través de Convertir Cadena HTML a PDF, Convertir Archivo HTML a PDF, Conversión de Word a PDF, o URL. Ayuda a manipular fácilmente los PDFs añadiendo o eliminando contenido de ellos. Proporciona Opciones de Seguridad y Firmado Digital para el documento PDF junto con el firmado digital.

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

Pasos para añadir firmas digitales a un documento PDF en Java

Prerrequisitos

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

  • Cualquier IDE de Java (NetBeans, Eclipse, IntelliJ) Instalado - Este artículo utilizará IntelliJ. Puedes descargar por separado el Kit de Desarrollo de Java desde las Descargas de Oracle Java SE.
  • Proyecto Maven de 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, incluye su artefacto de dependencia de Maven. Puedes agregar el siguiente fragmento de código en la etiqueta de dependencias del archivo pom.xml:
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
XML
  • Otra dependencia requerida 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>
    <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

Paquetes Java de importación de IronPDF

Los siguientes importaciones son requeridas en el archivo principal. Permite usar 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;
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 documentos PDF en Java usando IronPDF.

Crear archivo PDF o abrir archivo PDF existente

Para Aprender Cómo Firmar Digitalmente PDFs, es necesario ya sea 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](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String)) de la [Clase PdfDocument](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html). El código es el siguiente:

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

El documento PDF está creado pero aún no guardado. Entonces, el siguiente paso es crear una firma digital y luego añadirla a este documento PDF y finalmente guardarlo.

Crear una firma digital

Tendrás que crear un certificado de firma digital usando Adobe Reader, que se utilizará en el código Java para firmar digitalmente documentos PDF con esos detalles. Puedes mirar Cómo Crear una Firma Digital en Adobe Reader.

Abre Adobe Reader y haz clic en Editar > Preferencias. Luego haz clic en Firmas y más en Identidades y Certificados de Confianza.

Cómo Añadir Firmas Digitales a PDFs en Java, Figura 2: Las preferencias del proyecto Las preferencias del proyecto

Añade el siguiente campo de Firma para hacer el archivo .pfx o .p12.

Cómo Añadir Firmas Digitales a PDFs en Java, Figura 3: Dialogo de Añadir ID Digital Dialogo de Añadir ID Digital

El siguiente ejemplo de código creará una nueva firma en el código Java usando 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");
Signature signature = new Signature("Iron.pfx", "123456");
JAVA

Firma un archivo PDF con firma digital

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

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
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](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#saveAs(java.lang.String))) de la clase PdfDocument. El código es simple y es el siguiente:

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

Con la compilación y ejecución exitosa del código, la salida produce un PDF que ha sido 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 ofrece otras opciones de firma, que son opcionales y también se pueden usar para firmas digitales. Incluye imágenes de firma en forma de escritura a mano, imágenes de texto generadas por ordenador o imágenes digitalizadas. El siguiente ejemplo de código te ayuda a añadir algunas opciones de seguridad adicionales para el firmado 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());
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 class DigitalSignatureExample {
    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");
    }
}
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 class DigitalSignatureExample {
    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 Firma Digital desde el Ejemplo de Código de Firmas PDF. Si deseas añadir más seguridad e incluso editar metadatos, entonces consulta el Ejemplo de Código de Seguridad y Metadatos.

Conclusión

Este artículo explicó paso a paso cómo añadir firmas digitales a documentos PDF usando IronPDF para Java.

Primero, el artículo cubrió los componentes necesarios para trabajar con PDFs en Java utilizando IronPDF. Luego creó un documento PDF simple usando una cadena HTML. Se creó un archivo de certificado desde Adobe Reader, que fue utilizado para firmar el documento PDF original. IronPDF proporciona una Firma y una clase [SignatureManager](/java/object-reference/api/com/Iron Software/ironpdf/signature/SignatureManager.html), que ayuda a los usuarios a añadir un certificado y firmar un PDF con un campo de firma.

IronPDF facilita a los desarrolladores llevar a cabo tareas relacionadas con PDF con facilidad y rapidez. Proporciona resultados precisos con PDFs perfectos. Para un lenguaje de programación versátil y ampliamente utilizado como Java, IronPDF está bien adaptado para trabajar con documentos PDF ya que también es versátil y soporta casi todas las operaciones de PDF. Además, está construido sobre capacidades .NET ya exitosas.

IronPDF también proporciona una fácil conversión desde diferentes formatos de archivo, usando el rápido IronPDFEngine diseñado específicamente para Java. Puedes usar la biblioteca IronPDF para Extraer o Añadir Texto, Cargar y Extraer Imágenes, Añadir Encabezados y Pies de Página a PDFs, anotaciones, Renderizar Gráficos y Diagramas a PDFs, trabajar con Formularios PDF, y muchos más.

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

IronPDF es gratuito para el desarrollo individual y ofrece una prueba gratuita sin marca de agua para generar documentos PDF. Puede licenciarse 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.

Preguntas Frecuentes

¿Cómo puedo agregar una firma digital a un PDF en Java?

Puede agregar una firma digital a un PDF en Java usando IronPDF creando o abriendo un documento PDF, generando una firma digital con un archivo de certificado y usando la clase `SignatureManager` de IronPDF para aplicar la firma. Finalmente, guarde el documento PDF firmado.

¿Cuáles son los pasos para convertir HTML a PDF usando una biblioteca de Java?

Para convertir HTML a PDF usando IronPDF en Java, utilice el método PdfDocument.renderHtmlAsPdf. Esto le permite convertir cadenas HTML directamente en un documento PDF, que luego se puede guardar usando el método PdfDocument.saveAs.

¿Qué requisitos previos son necesarios para usar IronPDF en un proyecto Java?

Para usar IronPDF en un proyecto Java, necesita un IDE de Java como IntelliJ, un proyecto Maven para gestionar dependencias, y la biblioteca IronPDF. Adicionalmente, para agregar firmas digitales, se requiere un certificado de firma digital.

¿Puede IronPDF en Java convertir otros formatos de archivo a PDF?

Sí, además de HTML, IronPDF puede convertir varios otros formatos de archivo como documentos de Word y URLs a PDF en una aplicación Java.

¿IronPDF requiere bibliotecas de terceros para las funcionalidades de PDF?

No, IronPDF no requiere ninguna biblioteca de terceros para sus funcionalidades principales de PDF, convirtiéndolo en una solución independiente para la creación y manipulación de PDF en Java.

¿Cómo genero un certificado de firma digital para firmar PDFs?

Un certificado de firma digital se puede crear usando Adobe Reader navegando a Editar > Preferencias > Firmas, y gestionando Identidades y Certificados de Confianza.

¿Qué clase en IronPDF se utiliza para gestionar las firmas digitales en Java?

La clase SignatureManager en IronPDF se utiliza para gestionar las firmas digitales en Java. Le permite agregar nuevas firmas y recuperar las existentes de un documento PDF.

¿Qué opciones adicionales están disponibles para la firma digital con IronPDF en Java?

IronPDF en Java proporciona opciones para agregar imágenes de firma, especificar contacto de firma, ubicación y motivo, así como agregar escritura a mano e imágenes digitalizadas a la firma digital.

¿Existe una versión gratuita de IronPDF for Java?

IronPDF ofrece una prueba gratuita para desarrollo individual y se puede usar sin marca de agua. Hay opciones de licencia disponibles para uso comercial.

¿Cuáles son algunas características avanzadas de IronPDF for Java?

IronPDF for Java incluye características como extracción de texto e imágenes, agregar encabezados y pies de página, renderizado de gráficos y gráficos, y trabajar con formularios PDF.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Ciencias de la Computación de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde joven, vio la computación como algo misterioso y accesible, convirtiéndolo en el ...

Leer más