USO DE IRONPDF PARA JAVA

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

Actualizado 26 de marzo, 2023
Compartir:

**Formato de documento portátil (PDF) es un documento digital que se utiliza para compartir datos en línea. Se ha convertido en un formato universal para compartir texto, imágenes, informes, facturas, recibos, contratos comerciales y formularios editables. Con todo este intercambio de datos a través de Internet viene la seguridad de los documentos PDF. Las firmas digitales y otras opciones de seguridad de los documentos, como la contraseña, la autenticidad y los derechos de propiedad, también son igualmente importantes cuando se trabaja con documentos PDF.

Hay ocasiones en las que los desarrolladores Java tienen que incrustar funcionalidades PDF en aplicaciones de software y trabajar con archivos PDF, especialmente para modificarlos, puede resultar difícil. Del mismo modo, añadir detalles de firma a un documento PDF también puede resultar difícil en Java. IronPDF ayuda a manipular archivos PDF y añadir firmas digitales con bastante facilidad y eficacia.

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

IronPDF es una biblioteca Java que permite a los desarrolladores crear nuevos documentos PDF desde cero a través de una cadena HTML, un archivo doc HTML o una URL. Ayuda a manipular PDFs fácilmente añadiendo o eliminando contenido del mismo. Proporciona opciones de seguridad 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 JAVA (Netbeans, Eclipse, IntelliJ) Instalado- Aquí usaré IntelliJ. Puede descargar por separado el kit de desarrollo de Java de la página Sitio web de Oracle.
  • Maven Java Project for Automation - Esto ayudará a descargar y gestionar las dependencias en su programa Java. Puede descargar Maven desde Sitio web de Apache Maven.
  • Biblioteca IronPDF descargada e instalada - Para descargar e instalar IronPDF, incluya su artefacto de dependencia de Maven. Puede añadir el siguiente fragmento de código en la etiqueta de dependencias del archivo pom.xml:

    ``xml-mvn-install-ao

  • Otra dependencia necesaria es Slf4j-simple. Es opcional y puede añadirse 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
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 la firma digital al 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 estamos listos para añadir la firma digital a los documentos PDF en Java utilizando IronPDF.

Crear archivo PDF o abrir archivo PDF existente

A firmar digitalmente PDF, primero tenemos que crear un documento PDF desde cero o abrir un documento PDF existente. Aquí voy a 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. Ahora crearemos una firma digital y la añadiremos a este documento PDF para finalmente guardarlo.

Crear una firma digital

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

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

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

El siguiente ejemplo de código creará una nueva firma en código Java utilizando el archivo de certificado .pfx para Windows y .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 añadir el certificado de firma utilizando la clase SignatureManager. El método getSignature ayuda a obtener la firma anterior 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

Por último, tenemos que guardar el archivo PDF, de lo contrario el PDF no se firma. Guardaremos el documento PDF utilizando 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.

IronPDF también proporciona otras opciones de firma que son opcionales y que también pueden utilizarse para firmas digitales. Incluye imágenes de firmas, en forma de escritura a mano, imágenes de texto generadas por ordenador o imágenes digitalizadas. El siguiente ejemplo de código le ayudará 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 {

    //  Paso 1. Crear un archivo PDF Crear un archivo PDF Doc
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

    //  Paso 2. Crear una firma Cree una firma.
    Signature signature = new Signature("Iron.pfx", "123456");

    //  Paso 3. Firma el PDF con PdfSignature.
    SignatureManager signatureManager = pdf.getSignature();
    signatureManager.SignPdfWithSignature(signature);

    //  Paso 4. El PDF no se firma hasta que se guarda en un archivo, flujo o matriz de bytes.
    pdf.saveAs("signed.pdf");
}
JAVA

Puede consultar más información sobre la firma digital en la página Ejemplo de código de firmas PDF. Si desea añadir más seguridad e incluso editar metadatos, consulte el código de ejemplo aquí.

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, cubrimos los componentes necesarios para trabajar con PDFs en Java utilizando IronPDF. A continuación, creamos un documento PDF sencillo utilizando una cadena HTML. Se creó un archivo de certificado desde adobe reader que se utilizó para firmar el documento original PDF. IronPDF proporciona una clase Signature y SignatureManager que ayuda a los usuarios a añadir un certificado y firmar 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 facilita la conversión desde distintos formatos de archivo, utilizando el rápido IronPDFEngine diseñado específicamente para Java. Puede utilizar la biblioteca IronPDF para extraer o añadir texto, cargar y extraer imágenes, añadir encabezados y pies de página, anotaciones, representar tablas y gráficos, trabajar con formularios PDF y mucho más.

Puede obtener información detallada sobre cómo utilizar IronPDF en la página Ejemplos de códigos páginas.

IronPDF es gratuito para el desarrollo individual y proporciona una prueba gratuita para generar documentos PDF sin marca de agua. Los usuarios pueden obtener más información sobre la licencia en la siguiente dirección página.

< ANTERIOR
Java PDF Converter (Tutorial de ejemplo de código)
SIGUIENTE >
Cómo leer archivos PDF en Java

¿Listo para empezar? Versión: 2024.6 recién publicada

Descarga gratuita de Maven Ver licencias >