Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.
Aspose.PDF for .NET suporta a funcionalidade de assinar digitalmente os arquivos PDF usando a classe SignatureField e, ao assinar o documento, você também pode definir uma imagem para SignatureAppearance
. Agora, esta API também fornece a capacidade de extrair informações de assinatura, bem como a imagem associada ao campo de assinatura.
Para extrair informações de assinatura, introduzimos o método ExtractImage na classe SignatureField. Por favor, dê uma olhada no seguinte trecho de código que demonstra os passos para extrair uma imagem do objeto SignatureField
:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractImagesFromSignatureField()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "ExtractingImage.pdf"))
{
// Searching for signature fields
foreach (var field in document.Form)
{
var sf = field as Aspose.Pdf.Forms.SignatureField;
if (sf == null)
{
continue;
}
using (Stream imageStream = sf.ExtractImage())
{
if (imageStream != null)
{
continue;
}
using (System.Drawing.Image image = System.Drawing.Bitmap.FromStream(imageStream))
{
// Save the image
image.Save(dataDir + "output_out.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
}
Às vezes, você pode ter a necessidade de substituir apenas a imagem de um campo de assinatura já presente dentro do arquivo PDF. Para realizar esse requisito, primeiro, precisamos pesquisar os campos do formulário dentro do arquivo PDF, identificar os campos de assinatura, obter as dimensões (dimensões retangulares) do campo de assinatura e, em seguida, estampar uma imagem sobre as mesmas dimensões.
Aspose.PDF for .NET suporta a funcionalidade de assinar digitalmente os arquivos PDF usando a classe SignatureField. Atualmente, também podemos determinar a validade do certificado, mas não podemos extrair o certificado completo. As informações que podem ser extraídas são chave pública, impressão digital, emissor, etc.
Para extrair informações de assinatura, introduzimos o método ExtractCertificate na classe SignatureField. Por favor, dê uma olhada no seguinte trecho de código que demonstra os passos para extrair o certificado do objeto SignatureField:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractCertificate()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "ExtractSignatureInfo.pdf"))
{
// Searching for signature fields
foreach (var field in document.Form)
{
var sf = field as Aspose.Pdf.Forms.SignatureField;
if (sf == null)
{
continue;
}
// Extract certificate
Stream cerStream = sf.ExtractCertificate();
if (cerStream == null)
{
continue;
}
// Save certificate
using (cerStream)
{
byte[] bytes = new byte[cerStream.Length];
using (FileStream fs = new FileStream(dataDir + "input.cer", FileMode.CreateNew))
{
cerStream.Read(bytes, 0, bytes.Length);
fs.Write(bytes, 0, bytes.Length);
}
}
}
}
}
Você pode obter informações sobre os algoritmos de assinatura do documento.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private void GetSignaturesInfo()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "signed_rsa.pdf"))
{
using (var signature = new Aspose.Pdf.Facades.PdfFileSignature(document))
{
var sigNames = signature.GetSignatureNames();
var signaturesInfoList = signature.GetSignaturesInfo();
foreach (var sigInfo in signaturesInfoList)
{
Console.WriteLine(sigInfo.DigestHashAlgorithm);
Console.WriteLine(sigInfo.AlgorithmType);
Console.WriteLine(sigInfo.CryptographicStandard);
Console.WriteLine(sigInfo.SignatureName);
}
}
}
}
Saída de exemplo para o exemplo acima:
Sha256
Rsa
Pkcs7
Signature1
Você pode usar a classe SignaturesCompromiseDetector para verificar assinaturas digitais por comprometimento. Chame o método Check() para verificar as assinaturas do documento. Se nenhum comprometimento de assinatura for detectado, o método retornará verdadeiro. Se o método retornar falso, você pode verificar se as assinaturas comprometidas usam a propriedade HasCompromisedSignatures e recuperar a lista de assinaturas comprometidas através da propriedade CompromisedSignatures.
Para verificar se as assinaturas existentes cobrem todo o documento, use a propriedade SignaturesCoverage. Esta propriedade pode ter os seguintes valores:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.