Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
**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 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.
Para firmar digitalmente documentos PDF, se requieren los siguientes requisitos previos:
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
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
Archivo pom.xml
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;
Ahora, todo lo necesario está hecho y estamos listos para añadir la firma digital a los documentos PDF en Java utilizando IronPDF.
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>");
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.
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");
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);
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");
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());
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");
}
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í.
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.
9 productos API .NET para sus documentos de oficina