ลงนามดิจิทัลพร้อมประทับเวลาในไฟล์ PDF

การแนะนำ

คุณเคยจำเป็นต้องลงนามดิจิทัลใน PDF และระบุเวลาเพื่อความปลอดภัยเป็นพิเศษหรือไม่ ไม่ว่าคุณจะทำงานกับเอกสารทางกฎหมาย สัญญา หรืออะไรก็ตามที่ต้องมีการรับรองความปลอดภัย ลายเซ็นดิจิทัลพร้อมเวลาจะเพิ่มความน่าเชื่อถืออีกขั้น ในบทช่วยสอนนี้ เราจะอธิบายวิธีการใช้ Aspose.PDF สำหรับ .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://your_timestamp_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 ที่คุณเซ็นชื่อและประทับเวลาใหม่จะถูกบันทึกลงในไดเร็กทอรีที่ระบุแล้ว!

บทสรุป

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

คำถามที่พบบ่อย

ฉันสามารถใช้รูปแบบไฟล์อื่นสำหรับใบรับรองได้หรือไม่

ใช่ แต่บทช่วยสอนจะเน้นไปที่การใช้ไฟล์ PFX ซึ่งเป็นรูปแบบที่ใช้กันทั่วไปที่สุดสำหรับใบรับรองดิจิทัล

ฉันจำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ตเพื่อใช้การประทับเวลาหรือไม่

ใช่ เนื่องจากข้อมูลประทับเวลาถูกดึงมาจากผู้มีอำนาจประทับเวลาออนไลน์ คุณจึงจำเป็นต้องเชื่อมต่ออินเทอร์เน็ต

ฉันสามารถลงนามหลายหน้าใน PDF ได้หรือไม่?

แน่นอน! คุณสามารถปรับเปลี่ยนได้signature.Sign() วิธีการกำหนดเป้าหมายหลายหน้าหรือวนซ้ำผ่านทุกหน้า

จะเกิดอะไรขึ้นหากรหัสผ่านไฟล์ PFX ไม่ถูกต้อง?

คุณจะได้รับข้อยกเว้นหากรหัสผ่านไม่ถูกต้อง ดังนั้นโปรดตรวจสอบให้แน่ใจว่าป้อนรหัสผ่านถูกต้อง

ฉันสามารถทำให้ลายเซ็นมองไม่เห็นได้ไหม?

ใช่ครับผ่านได้false ไปที่Sign พารามิเตอร์ visibility ของวิธีการเพื่อทำให้ลายเซ็นมองไม่เห็น