استخراج معلومات الصورة والتوقيع
الشفرة التالية تعمل أيضًا مع مكتبة Aspose.PDF.Drawing.
استخراج الصورة من حقل التوقيع
يدعم Aspose.PDF لـ .NET ميزة التوقيع الرقمي على ملفات PDF باستخدام فئة SignatureField وأثناء توقيع المستند، يمكنك أيضًا تعيين صورة لمظهر التوقيع. الآن، توفر هذه الواجهة البرمجية أيضًا القدرة على استخراج معلومات التوقيع بالإضافة إلى الصورة المرتبطة بحقل التوقيع.
لكي نتمكن من استخراج معلومات التوقيع، قمنا بتقديم طريقة ExtractImage إلى فئة SignatureField. الرجاء الاطلاع على الشفرة التالية التي توضح الخطوات لاستخراج صورة من كائن SignatureField:
// للحصول على أمثلة كاملة وملفات بيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// المسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
string input = dataDir+ @"ExtractingImage.pdf";
using (Document pdfDocument = new Document(input))
{
foreach (Field field in pdfDocument.Form)
{
SignatureField sf = field as SignatureField;
if (sf != null)
{
string outFile = dataDir+ @"output_out.jpg";
using (Stream imageStream = sf.ExtractImage())
{
if (imageStream != null)
{
using (System.Drawing.Image image = Bitmap.FromStream(imageStream))
{
image.Save(outFile, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
}
}
استبدال صورة التوقيع
أحيانًا قد يكون لديك متطلب لاستبدال صورة حقل توقيع موجود بالفعل داخل ملف PDF. لتحقيق هذا المتطلب، أولًا، نحتاج إلى البحث عن حقول النماذج داخل ملف PDF، تحديد حقول التوقيع، الحصول على الأبعاد (الأبعاد المستطيلة) لحقل التوقيع ثم ختم الصورة فوق نفس الأبعاد.
استخراج معلومات التوقيع
يدعم Aspose.PDF لـ .NET ميزة التوقيع الرقمي لملفات PDF باستخدام فئة SignatureField. حاليًا، يمكننا أيضًا تحديد صلاحية الشهادة ولكن لا يمكننا استخراج الشهادة بأكملها. المعلومات التي يمكن استخراجها هي المفتاح العام، البصمة، المصدر، إلخ.
لاستخراج معلومات التوقيع، قدمنا طريقة ExtractCertificate إلى فئة SignatureField. لقد قمنا بإدخال طريقة ExtractCertificate إلى فئة SignatureField.
// للحصول على أمثلة كاملة وملفات البيانات، يرجى زيارة https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// مسار إلى مجلد الوثائق.
string dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
string input = dataDir + "ExtractSignatureInfo.pdf";
using (Document pdfDocument = new Document(input))
{
foreach (Field field in pdfDocument.Form)
{
SignatureField sf = field as SignatureField;
if (sf != null)
{
Stream cerStream = sf.ExtractCertificate();
if (cerStream != null)
{
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);
}
}
}
}
}
}