إضافة توقيع رقمي إلى PDF C#

تُستخدم التواقيع الرقمية لتأمين مستندات PDF قبل مشاركتها مع جهات خارجية. يتيح التوقيع الرقمي على مستند PDF اكتشاف التلاعب عن طريق التحقق من المستند باستخدام التوقيع الرقمي. لتأمين مستندات PDF برمجيًا باستخدام التوقيعات الرقمية ، ستوضح لك هذه المقالة كيفية إضافة التوقيعات الرقمية في ملفات PDF في C#. ستتعلم أيضًا كيفية التحقق من صحة التوقيعات الرقمية في ملفات PDF في C#.

C# .NET API لإضافة توقيعات رقمية في ملف PDF

من أجل إضافة التوقيعات الرقمية والتحقق منها في مستندات PDF ، سنستخدم Aspose.PDF for .NET API وهي واجهة برمجة تطبيقات قوية لمعالجة ملفات PDF لإنشاء مستندات PDF وتحريرها وتحويلها وتوقيعها رقميًا. يمكنك تنزيل Aspose.PDF for .NET أو تثبيته بإحدى الطرق التالية في Visual Studio:

مدير الحزم NuGet

توقيع PDF رقميًا في C#

وحدة تحكم مدير الحزم

PM> Install-Package Aspose.PDF

أضف توقيعًا رقميًا إلى ملف PDF في C#

فيما يلي خطوات التوقيع على مستند PDF باستخدام Aspose.PDF for .NET.

  • قم بإنشاء كائن من فئة Document وتهيئته باستخدام مسار مستند PDF.
  • أنشئ كائنًا من فئة PdfFileSignature وقم بتهيئته باستخدام كائن فئة المستند.
  • قم بإنشاء كائن من فئة PKCS7 وتهيئته بمسار الشهادة وكلمة المرور.
  • إنشاء وتهيئة كائن من فئة DocMDPSignature لنوع توقيع MDP.
  • قم بإنشاء مستطيل لوضع التوقيع.
  • توقيع وثيقة PDF رقميًا باستخدام طريقة PdfFileSignature.Certify().
  • احفظ المستند باستخدام طريقة PdfFileSignature.Save().

يوضح نموذج التعليمات البرمجية التالي كيفية إضافة توقيع رقمي إلى مستند PDF في C#.

// قم بتحميل مستند PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
		DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// تعيين مظهر التوقيع
		signature.SignatureAppearance = @"aspose-logo.png";
		// قم بإنشاء أي من أنواع التوقيع الثلاثة
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// حفظ ملف PDF موقع رقميًا
		signature.Save("Digitally Signed PDF.pdf");
	}
}

C# إضافة توقيع رقمي إلى PDF باستخدام خادم الطابع الزمني

يمكنك أيضًا إضافة توقيع رقمي إلى مستند PDF باستخدام خادم TimeStamp من خلال توفير تفاصيله باستخدام فئة TimestampSettings. يوضح نموذج التعليمات البرمجية التالي كيفية التوقيع رقميًا على مستند PDF باستخدام خادم TimeStamp في C#.

// قم بتحميل مستند PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects
		TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
		pkcs.TimestampSettings = timestampSettings;
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// قم بإنشاء أي من أنواع التوقيع الثلاثة
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// حفظ ملف PDF الناتج
		signature.Save("Output.pdf");
	}
}

تحقق من ملف PDF الموقّع رقميًا في C#

فيما يلي خطوات التحقق من التوقيع الرقمي في مستند PDF:

  • قم بإنشاء كائن من فئة Document وتهيئته باستخدام مسار مستند PDF.
  • أنشئ كائنًا من فئة PdfFileSignature وقم بتهيئته باستخدام كائن فئة المستند.
  • قم بالوصول إلى جميع تواقيع مستند PDF.
  • تحقق من صحة التوقيع باستخدام طريقة PdfFileSignature.VerifySigned().

يوضح نموذج التعليمات البرمجية التالي كيفية التحقق من التوقيع الرقمي في PDF باستخدام C#.

// قم بتحميل مستند PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		IList<string> sigNames = signature.GetSignNames();
		if (sigNames.Count > 0) // Any signatures?
		{
			if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
			{
				if (signature.IsCertified) // Certified?
				{
					if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
					{
						// قم بعمل ما
					}
				}
			}
		}
	}
}

جرب Aspose.PDF for .NET مجانًا

يمكنك الحصول على ترخيص مؤقت مجاني لمحاولة استخدام Aspose.PDF لـ .NET.

استنتاج

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

مقالات ذات صلة