Como assinar digitalmente PDF
Assinar PDF com assinaturas digitais
Você pode assinar o documento PDF para confirmar seu conteúdo ou pode aprovar o documento com Aspose.PDF.
Aspose.PDF para C++ suporta o recurso de assinar digitalmente os arquivos PDF usando a classe SignatureField. Você também pode certificar um arquivo PDF com um Certificado PKCS12. Algo semelhante a Adicionar assinaturas e segurança no Adobe Acrobat.
Use a classe PdfFileSignature para assinar seu PDF.
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Facades;
void SecuringAndSigning::SignDocument() {
// String para nome do caminho.
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"); // Use PKCS7/PKCS7Detached
// objetos
System::Drawing::Rectangle rect(300, 100, 400, 200);
signature->Sign(1, true, rect, pkcs);
// Salvar arquivo PDF de saída
signature->Save(outFile);
}
Adicionar carimbo de data/hora à assinatura digital
Como assinar digitalmente um PDF com carimbo de data/hora
Aspose.PDF para C++ suporta a assinatura digital do PDF com um servidor de carimbo de data/hora ou serviço Web.
Carimbos de data/hora são usados para indicar a data e a hora em que você assinou o documento. A marcação de tempo confiável prova que o conteúdo dos seus PDFs existia em um ponto específico no tempo e não foi alterado desde então.
Use a classe TimestampSettings para adicionar um carimbo de tempo confiável a assinaturas digitais ou documentos.
Por favor, veja o trecho de código a seguir que obtém o carimbo de data/hora e o adiciona ao documento PDF:
void SecuringAndSigning::SignWithTimeStampServer() {
// String para nome do caminho.
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); // Usuário/Senha podem
// ser omitidos
pkcs->set_TimestampSettings(timestampSettings);
System::Drawing::Rectangle rect(100, 100, 200, 100);
// Crie qualquer um dos três tipos de assinatura
signature->Sign(1, u"Motivo da Assinatura", u"Contato", u"Localização", true, rect, pkcs);
// Salve o arquivo PDF de saída
signature->Save(_dataDir + u"DigitallySignWithTimeStamp_out.pdf");
}