Как цифрово подписать PDF

Подпись PDF с помощью цифровых подписей

Вы можете подписать PDF-документ, чтобы подтвердить его содержимое, или вы можете утвердить документ с помощью Aspose.PDF.

Aspose.PDF для C++ поддерживает функцию цифровой подписи PDF-файлов с использованием класса SignatureField. Вы также можете сертифицировать PDF-файл с помощью PKCS12-сертификата. Что-то аналогичное Добавление подписей и безопасности в Adobe Acrobat.

Используйте класс PdfFileSignature для подписи вашего PDF.

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

void SecuringAndSigning::SignDocument() {

// Строка для имени пути.

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"); // Используйте PKCS7/PKCS7Detached
























// объекты

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

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

// Сохраните выходной PDF файл

signature->Save(outFile);
}

Добавить временную метку к цифровой подписи

Как подписать PDF с временной меткой

Aspose.PDF для C++ поддерживает цифровую подпись PDF с использованием сервера временных меток или веб-сервиса.

Временные метки используются для указания даты и времени, когда вы подписали документ. Надежное временное штампование доказывает, что содержимое ваших PDF существовало в определенный момент времени и не изменялось с тех пор.

Используйте класс TimestampSettings для добавления доверенной временной метки к цифровым подписям или документам.

Пожалуйста, ознакомьтесь с следующим кодом, который получает временную метку и добавляет ее в PDF документ:

void SecuringAndSigning::SignWithTimeStampServer() {

// Строка для имени пути.

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); // Пользователь/Пароль могут быть опущены

pkcs->set_TimestampSettings(timestampSettings);

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

// Создайте любой из трех типов подписи

signature->Sign(1, u"Signature Reason", u"Contact", u"Location", true, rect, pkcs);

// Сохраните выходной PDF файл

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