ลงนามดิจิทัลพร้อมประทับเวลาในไฟล์ 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 ของวิธีการเพื่อทำให้ลายเซ็นมองไม่เห็น