Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.
Aspose.PDF for .NET admite la función de firmar digitalmente los archivos PDF utilizando la clase SignatureField y al firmar el documento, también puede establecer una imagen para SignatureAppearance
. Ahora, esta API también proporciona la capacidad de extraer información de firma así como la imagen asociada con el campo de firma.
Para extraer información de firma, hemos introducido el método ExtractImage a la clase SignatureField. Por favor, eche un vistazo al siguiente fragmento de código que demuestra los pasos para extraer una imagen del 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);
}
}
}
}
}
Aspose.PDF for .NET admite la función de firmar digitalmente los archivos PDF utilizando la clase SignatureField. Actualmente, también podemos determinar la validez del certificado, pero no podemos extraer el certificado completo. La información que se puede extraer es una clave pública, huella digital, emisor, etc.
Para extraer información de firma, hemos introducido el método ExtractCertificate a la clase SignatureField. Por favor, eche un vistazo al siguiente fragmento de código que demuestra los pasos para extraer el certificado del 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);
}
}
}
}
}
Puedes usar el método PdfFileSignature.TryExtractCertificate
para extraer un flujo de certificado o un objeto X509Certificate2
.
Puede obtener información sobre los algoritmos de firma del 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);
}
}
}
}
Salida de muestra para el ejemplo anterior:
Sha256
Rsa
Pkcs7
Signature1
Puede usar la clase SignaturesCompromiseDetector para verificar firmas digitales por compromiso. Llame al método Check() para verificar las firmas del documento. Si no se detecta compromiso en ninguna firma, el método devolverá verdadero. Si el método devuelve falso, puede verificar si las firmas comprometidas utilizan la propiedad HasCompromisedSignatures y recuperar la lista de firmas comprometidas a través de la propiedad CompromisedSignatures.
Para verificar si las firmas existentes cubren todo el documento, use la propiedad SignaturesCoverage. Esta propiedad puede tener los siguientes valores:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.