التوقيع رقميا باستخدام ختم الوقت في ملف PDF

مقدمة

هل احتجت يومًا إلى التوقيع رقميًا على ملف PDF وإضافة علامة زمنية إليه لمزيد من الأمان؟ سواء كنت تعمل على مستندات قانونية أو عقود أو أي شيء يتطلب مصادقة آمنة، فإن التوقيع الرقمي المزود بعلامة زمنية يضيف طبقة إضافية من المصداقية. في هذا البرنامج التعليمي، سنوضح لك كيفية استخدام Aspose.PDF for .NET لإضافة توقيع رقمي مع علامة زمنية إلى مستندات PDF الخاصة بك. لا تقلق، سنشرح لك الأمر خطوة بخطوة!

المتطلبات الأساسية

قبل أن نتعمق في الكود، هناك بعض الأشياء التي ستحتاج إلى إعدادها لمتابعتها. فيما يلي قائمة مرجعية سريعة للمتطلبات الأساسية للبدء:

  • مكتبة Aspose.PDF لـ .NET: ستحتاج إلى تثبيت مكتبة Aspose.PDF لـ .NET في مشروعك. يمكنكقم بتنزيل الإصدار الأحدث هنا أو قم بإضافته إلى مشروعك عبر NuGet.
  • مستند PDF: ستحتاج إلى ملف PDF نموذجي للعمل عليه. تأكد من وجود ملف في دليل مشروعك تريد التوقيع عليه.
  • الشهادة الرقمية (ملف PFX): تأكد من حصولك على شهادة رقمية (ملف PFX).pfx الملف) للتوقيع رقميا على المستند.
  • عنوان URL للختم الزمني: هذه خدمة ختم زمني عبر الإنترنت سيتم استخدامها لإرفاق ختم زمني بالتوقيع الرقمي.
  • المعرفة الأساسية بلغة C#: لست بحاجة إلى أن تكون خبيرًا، ولكن معرفة أساسيات لغة C# ستساعدك على فهم الكود وتخصيصه.

بمجرد تحديد كل هذه المربعات، ستكون جاهزًا لبدء البرمجة!

استيراد الحزم

للبدء، ستحتاج إلى استيراد مساحات الأسماء التالية إلى مشروع C# الخاص بك. وهذا يضمن لك إمكانية الوصول إلى فئات ووظائف Aspose.PDF ذات الصلة.

using System.IO;
using System;
using Aspose.Pdf;
using Aspose.Pdf.Facades;
using Aspose.Pdf.Forms;
using System.Collections;

الخطوة 1: تحميل مستند PDF

أول شيء يتعين علينا القيام به هو تحميل مستند PDF الذي نريد توقيعه. إليك كيفية القيام بذلك:

// قم بتحديد المسار إلى دليل المستند الخاص بك
string dataDir = "YOUR DOCUMENTS DIRECTORY";

// تحميل مستند PDF
Document document = new Document(dataDir + @"DigitallySign.pdf");

هذه الخطوة واضحة جدًا. فنحن ببساطة نحدد المسار إلى المستند الذي نريد التوقيع عليه.Document تتولى الفئة من Aspose.PDF مسؤولية تحميل الملف.

الخطوة 2: إعداد التوقيع الرقمي

بعد ذلك، سننشئ التوقيع الرقمي باستخدام فئة PKCS7 ونقوم بتحميل ملف PFX. يحتوي ملف PFX هذا على شهادتك ومفتاحك الخاص، وهما ضروريان لتوقيع المستند.

// المسار إلى ملف .pfx الخاص بك
string pfxFile = "YOUR DOCUMENTS DIRECTORY\\certificate.pfx";

// تهيئة كائن التوقيع
PdfFileSignature signature = new PdfFileSignature(document);

// قم بتحميل ملف PFX بكلمة مرور
PKCS7 pkcs = new PKCS7(pfxFile, "pfx_password");

في هذه المرحلة، أنت تخبر Aspose باستخدام شهادتك الرقمية لتوقيع المستند.PKCS7يتولى الكائن كافة أعمال التشفير نيابة عنك، لذلك لا داعي للقلق بشأن التفاصيل الدقيقة.

الخطوة 3: إضافة إعدادات الطابع الزمني

يعد ختم التاريخ أحد المكونات الرئيسية للتوقيع الرقمي القوي. ويضمن هذا إمكانية التحقق من صحة توقيع المستند حتى بعد انتهاء صلاحية الشهادة. فلنقم بإعداد ختم التاريخ باستخدام سلطة ختم التاريخ عبر الإنترنت.

// تحديد إعدادات الطابع الزمني
TimestampSettings timestampSettings = new TimestampSettings("https://عنوان URL الخاص بك، "المستخدم: كلمة المرور");

// إضافة إعدادات الطابع الزمني إلى كائن PKCS7
pkcs.TimestampSettings = timestampSettings;

هنا، تقوم بتحديد عنوان URL لخدمة ختم الوقت، والتي ستوفر تلقائيًا الوقت والتاريخ لتوقيعك. يمكن القيام بذلك مع أو بدون مصادقة.

الخطوة 4: تحديد موقع التوقيع ومظهره

الآن، سنحدد مكان ظهور التوقيع في ملف PDF وأبعاده. يمكنك تخصيص موضع مربع التوقيع على الصفحة، وكذلك الحجم.

//تحديد مظهر التوقيع وموقعه (الصفحة 1، مع المستطيل المحدد)
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);

هنا، نقوم بتعريف مستطيل يضع التوقيع عند الإحداثيات (100، 100) على الصفحة الأولى من ملف PDF، بعرض 200 وارتفاع 100. يمكنك تغيير هذه القيم لتناسب تصميمك.

الخطوة 5: التوقيع على مستند PDF

بعد إعداد كل شيء، حان الوقت لتطبيق التوقيع الرقمي على ملف PDF. تجمع هذه الخطوة بين الشهادة والطابع الزمني والتحديد في أمر واحد بسيط.

// توقيع الوثيقة في الصفحة الأولى
signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);

وهذا ما يحدث:

  • 1: يشير هذا إلى أنه يجب تطبيق التوقيع على الصفحة الأولى.
  • “سبب التوقيع”: هذا هو المكان الذي يمكنك فيه تحديد سبب توقيعك على المستند.
  • “جهة الاتصال”: أدخل معلومات الاتصال الخاصة بالموقع.
  • “الموقع”: حدد موقع المُوقّع.
  • صحيح: تشير هذه القيمة المنطقية إلى ما إذا كان التوقيع مرئيًا في المستند.
  • المستطيل: المستطيل الذي حددناه سابقًا يحدد حجم وموضع التوقيع.
  • pkcs: يحتوي كائن PKCS7 على إعدادات الشهادة الرقمية والطابع الزمني.

الخطوة 6: احفظ ملف PDF الموقّع

بمجرد توقيع المستند، كل ما تبقى عليك فعله هو حفظه. يمكنك اختيار اسم ملف جديد للاحتفاظ بالإصدارين الأصلي والموقع.

// احفظ مستند PDF الموقع
signature.Save(dataDir + "DigitallySignWithTimeStamp_out.pdf");

سيتم الآن حفظ ملف PDF الموقع والمختوم بالتاريخ في الدليل المحدد!

خاتمة

والآن، لقد نجحت في التوقيع رقميًا على ملف PDF بعلامة زمنية باستخدام Aspose.PDF for .NET. تضمن هذه العملية صحة وسلامة مستنداتك، مما يمنحك أنت والمتلقي راحة البال. أصبحت التوقيعات الرقمية ضرورية بشكل متزايد في عالمنا الرقمي اليوم، لذا فإن إتقان هذه العملية يعد مهارة تستحق اكتسابها بالتأكيد.

الأسئلة الشائعة

هل يمكنني استخدام تنسيق ملف مختلف للشهادة؟

نعم، لكن البرنامج التعليمي يركز على استخدام ملف PFX، وهو التنسيق الأكثر شيوعًا للشهادات الرقمية.

هل أحتاج إلى اتصال بالإنترنت لتطبيق الطابع الزمني؟

نعم، نظرًا لأنه يتم جلب الطابع الزمني من جهة رسمية للطابع الزمني عبر الإنترنت، فستحتاج إلى الوصول إلى الإنترنت.

هل يمكنني التوقيع على صفحات متعددة في ملف PDF؟

بالتأكيد! يمكنك تعديلsignature.Sign() طريقة لاستهداف صفحات متعددة أو المرور عبر جميع الصفحات.

ماذا يحدث إذا كانت كلمة مرور ملف PFX غير صحيحة؟

سوف تتلقى استثناءً إذا كانت كلمة المرور خاطئة، لذا تأكد من إدخالها بشكل صحيح.

هل يمكنني جعل التوقيع غير مرئي؟

نعم يمكنك المرورfalse الىSign معلمة رؤية الطريقة لجعل التوقيع غير مرئي.