Cómo firmar digitalmente un PDF

Firmar PDF con firmas digitales

Puede firmar el documento PDF para confirmar su contenido, o puede aprobar el documento con Aspose.PDF.

Aspose.PDF para C++ admite la función de firmar digitalmente los archivos PDF utilizando la clase SignatureField. También puede certificar un archivo PDF con un certificado PKCS12. Algo similar a Agregar firmas y seguridad en Adobe Acrobat.

Use la clase PdfFileSignature para firmar su PDF.

using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Facades;

void SecuringAndSigning::SignDocument() {

// Cadena para el nombre de la ruta.

String _dataDir("C:\\Samples\\");


String inFile = _dataDir + u"DigitallySign.pdf";

String outFile = _dataDir + u"DigitallySign_out.pdf";


auto document = MakeObject<Document>(inFile);


auto signature = MakeObject<PdfFileSignature>(document);


auto pkcs = MakeObject<Aspose::Pdf::Forms::PKCS7>(_dataDir + u"test.pfx", u"Pa$$w0rd2020"); // Usar PKCS7/PKCS7Detached
























// objetos

System::Drawing::Rectangle rect(300, 100, 400, 200);

signature->Sign(1, true, rect, pkcs);

// Guardar archivo PDF de salida

signature->Save(outFile);
}

Añadir marca de tiempo a la firma digital

Cómo firmar digitalmente un PDF con marca de tiempo

Aspose.PDF para C++ admite firmar digitalmente el PDF con un servidor de marca de tiempo o servicio web.

Las marcas de tiempo se utilizan para indicar la fecha y la hora en que firmó el documento. El sellado de tiempo fiable demuestra que el contenido de sus PDFs existía en un momento específico y no ha cambiado desde entonces.

Utilice la clase TimestampSettings para agregar una marca de tiempo de confianza a las firmas digitales o documentos.

Por favor, eche un vistazo al siguiente fragmento de código que obtiene la marca de tiempo y la agrega al documento PDF:

void SecuringAndSigning::SignWithTimeStampServer() {


// Cadena para el nombre de la ruta.

String _dataDir("C:\\Samples\\");

auto document = MakeObject<Document>(_dataDir + u"SimpleResume.pdf");

auto signature = MakeObject<PdfFileSignature>(document);


auto pkcs = MakeObject<Aspose::Pdf::Forms::PKCS7>(_dataDir + u"test.pfx", u"Pa$$w0rd2020");


auto timestampSettings = MakeObject<TimestampSettings>(u"https://freetsa.org/tsr", String::Empty); // Usuario/Contraseña pueden
























// ser omitidos

pkcs->set_TimestampSettings(timestampSettings);


System::Drawing::Rectangle rect(100, 100, 200, 100);

// Crear cualquiera de los tres tipos de firma

signature->Sign(1, u"Razón de la Firma", u"Contacto", u"Ubicación", true, rect, pkcs);

// Guardar archivo PDF de salida

signature->Save(_dataDir + u"DigitallySignWithTimeStamp_out.pdf");
}