เพิ่มลายเซ็นดิจิทัลใน PDF C#

ลายเซ็นดิจิทัลใช้เพื่อรักษาความปลอดภัยเอกสาร PDF ก่อนที่จะแชร์กับบุคคลที่สาม การเซ็นชื่อแบบดิจิทัลในเอกสาร PDF ทำให้สามารถตรวจจับการปลอมแปลงได้โดยการตรวจสอบเอกสารโดยใช้ลายเซ็นดิจิทัล เพื่อรักษาความปลอดภัยเอกสาร PDF โดยทางโปรแกรมโดยใช้ลายเซ็นดิจิทัล บทความนี้จะแสดงวิธีเพิ่มลายเซ็นดิจิทัลในไฟล์ PDF ใน C# คุณจะได้เรียนรู้วิธีตรวจสอบลายเซ็นดิจิทัลในไฟล์ PDF ใน C#

C# .NET API เพื่อเพิ่มลายเซ็นดิจิทัลใน PDF

ในการเพิ่มและตรวจสอบลายเซ็นดิจิทัลในเอกสาร PDF เราจะใช้ Aspose.PDF for .NET API ซึ่งเป็น API การจัดการ PDF ที่ทรงพลังสำหรับการสร้าง แก้ไข แปลง และเซ็นเอกสาร PDF แบบดิจิทัล คุณสามารถ ดาวน์โหลด Aspose.PDF สำหรับ .NET หรือติดตั้งด้วยวิธีใดวิธีหนึ่งต่อไปนี้ใน Visual Studio:

ผู้จัดการแพ็คเกจ NuGet

เซ็นชื่อแบบดิจิทัล PDF ใน C#

คอนโซลตัวจัดการแพ็คเกจ

PM> Install-Package Aspose.PDF

เพิ่มลายเซ็นดิจิทัลให้กับ PDF ใน C#

ต่อไปนี้เป็นขั้นตอนในการเซ็นเอกสาร PDF โดยใช้ Aspose.PDF สำหรับ .NET

  • สร้างวัตถุของคลาส Document และเริ่มต้นด้วยเส้นทางของเอกสาร PDF
  • สร้างวัตถุของคลาส PdfFileSignature และเริ่มต้นด้วยวัตถุของคลาส Document
  • สร้างวัตถุของคลาส 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 โดยใช้ Timestamp Server

คุณยังสามารถเพิ่มลายเซ็นดิจิทัลในเอกสาร 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 และเริ่มต้นด้วยวัตถุของคลาส Document
  • เข้าถึงลายเซ็นทั้งหมดของเอกสาร 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 สำหรับ .NET ฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อลองใช้ Aspose.PDF สำหรับ .NET

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีเพิ่มลายเซ็นดิจิทัลให้กับไฟล์ PDF ใน C#.NET นอกจากนี้ คุณได้เห็นวิธีการตรวจสอบไฟล์ PDF ที่เซ็นชื่อแบบดิจิทัลโดยทางโปรแกรมใน C# คุณสามารถติดตั้ง Aspose.PDF สำหรับ .NET ในแอปพลิเคชันของคุณและเซ็นชื่อไฟล์ PDF แบบดิจิทัลได้อย่างราบรื่น

บทความที่เกี่ยวข้อง