Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
تعمل مقتطفات الشيفرة التالية أيضًا مع مكتبة Aspose.PDF.Drawing .
تدعم Aspose.PDF for .NET ميزة التوقيع الرقمي لملفات PDF باستخدام فئة SignatureField وأثناء توقيع المستند، يمكنك أيضًا تعيين صورة لـ SignatureAppearance
. الآن، توفر هذه الواجهة البرمجية أيضًا القدرة على استخراج معلومات التوقيع بالإضافة إلى الصورة المرتبطة بحقل التوقيع.
لاستخراج معلومات التوقيع، قدمنا طريقة ExtractImage إلى فئة SignatureField. يرجى إلقاء نظرة على مقتطف الشيفرة التالي الذي يوضح الخطوات لاستخراج صورة من كائن 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);
}
}
}
}
}
في بعض الأحيان قد يكون لديك متطلبات لاستبدال صورة حقل التوقيع الموجود بالفعل داخل ملف PDF. لتحقيق هذا المتطلب، أولاً، نحتاج إلى البحث عن حقول النموذج داخل ملف PDF، وتحديد حقول التوقيع، والحصول على الأبعاد (الأبعاد المستطيلة) لحقل التوقيع ثم ختم صورة فوق نفس الأبعاد.
تدعم Aspose.PDF for .NET ميزة التوقيع الرقمي لملفات PDF باستخدام فئة SignatureField. حاليًا، يمكننا أيضًا تحديد صلاحية الشهادة ولكن لا يمكننا استخراج الشهادة بالكامل. المعلومات التي يمكن استخراجها هي المفتاح العام، وبصمة الإصبع، والجهة المصدرة، إلخ.
لاستخراج معلومات التوقيع، قدمنا طريقة ExtractCertificate إلى فئة SignatureField . يرجى إلقاء نظرة على مقتطف الشيفرة التالي الذي يوضح الخطوات لاستخراج الشهادة من كائن 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);
}
}
}
}
}
يمكنك الحصول على معلومات حول خوارزميات توقيع المستند.
// 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);
}
}
}
}
نموذج الإخراج للمثال أعلاه:
Sha256
Rsa
Pkcs7
Signature1
يمكنك استخدام فئة SignaturesCompromiseDetector للتحقق من تعرض التوقيعات الرقمية للتلاعب. استدعِ طريقة Check() للتحقق من توقيعات المستند. إذا لم يتم اكتشاف أي تلاعب في التوقيعات، ستعيد الطريقة true. إذا أعادت الطريقة false، يمكنك التحقق مما إذا كانت التوقيعات المتعرضة للتلاعب تستخدم الخاصية HasCompromisedSignatures واسترجاع قائمة التوقيعات المتعرضة للتلاعب عبر الخاصية CompromisedSignatures.
للتحقق مما إذا كانت التوقيعات الحالية تغطي المستند بأكمله، استخدم الخاصية SignaturesCoverage. يمكن أن تأخذ هذه الخاصية القيم التالية:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.