การเข้ารหัส PDF เป็นกระบวนการปกป้องเอกสารโดยใช้รหัสผ่าน เช่นเดียวกับอัลกอริธึมการเข้ารหัสบางอย่าง เช่น AES หรือ RC4 คุณยังสามารถตั้งค่าสิทธิ์ต่างๆ เพื่อจำกัดการเข้าถึงของผู้ใช้ในการดำเนินการต่างๆ ตัวอย่างเช่น คุณสามารถอนุญาตเฉพาะการพิมพ์ เพิ่มคำอธิบายประกอบ กรอกแบบฟอร์ม และอื่นๆ ในบทความนี้ คุณจะได้เรียนรู้วิธีเข้ารหัสไฟล์ PDF โดยใช้ C++ นอกจากนี้ บทความนี้ยังกล่าวถึงวิธีตั้งค่าสิทธิ์ต่างๆ และถอดรหัสไฟล์ PDF ที่ป้องกันด้วยรหัสผ่านโดยใช้ C++
C ++ API เพื่อเข้ารหัสหรือถอดรหัสไฟล์ PDF
Aspose.PDF for C++ เป็น C++ API แบบเนทีฟที่ให้คุณสร้าง อ่าน และจัดการเอกสาร PDF นอกจากนี้ยังให้คุณเข้ารหัส PDF ด้วยรหัสผ่านและถอดรหัส PDF ที่เข้ารหัสภายในโค้ดไม่กี่บรรทัด คุณสามารถดาวน์โหลด API ได้จากส่วน ดาวน์โหลด หรือติดตั้งโดยใช้ NuGet
เข้ารหัสไฟล์ PDF โดยใช้ C++
ต่อไปนี้เป็นขั้นตอนในการเข้ารหัสไฟล์ PDF โดยใช้ Aspose.PDF for C++
- โหลดเอกสาร PDF โดยใช้คลาส Document
- ใช้คลาส DocumentPrivilege เพื่อตั้งค่าสิทธิ์ต่างๆ เช่น อนุญาตการพิมพ์ อนุญาตการแก้ไขเนื้อหา และอื่นๆ
- โทร Document.Encrypt(String, String, SharedPtr , CryptoAlgorithm, bool) วิธีการเข้ารหัส PDF
- บันทึก PDF โดยใช้วิธี Document->Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเข้ารหัสไฟล์ PDF โดยใช้ C++
For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// โหลดเอกสาร PDF ที่มีอยู่
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\input.pdf");
// Way1: ใช้สิทธิ์ที่กำหนดไว้ล่วงหน้าโดยตรง
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege = Aspose::Pdf::Facades::DocumentPrivilege::get_Print();
doc->Encrypt(L"user", L"owner", privilege, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay1_out.pdf");
// Way2: ขึ้นอยู่กับสิทธิ์ที่กำหนดไว้ล่วงหน้าและเปลี่ยนสิทธิ์เฉพาะบางอย่าง
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege2 = Aspose::Pdf::Facades::DocumentPrivilege::get_AllowAll();
privilege->set_AllowPrint(false);
privilege->set_AllowModifyContents(false);
doc->Encrypt(L"user", L"owner", privilege2, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay2_out.pdf");
// Way3: ตามสิทธิ์ที่กำหนดไว้ล่วงหน้าและเปลี่ยนชุดค่าผสมสิทธิ์ Adobe Professional เฉพาะบางรายการ
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege3 = Aspose::Pdf::Facades::DocumentPrivilege::get_ForbidAll();
privilege->set_ChangeAllowLevel(1);
privilege->set_PrintAllowLevel(2);
doc->Encrypt(L"user", L"owner", privilege3, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay3_out.pdf");
// Way4: ผสม way2 และ way3
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege4 = Aspose::Pdf::Facades::DocumentPrivilege::get_ForbidAll();
privilege->set_ChangeAllowLevel(1);
privilege->set_AllowPrint(true);
doc->Encrypt(L"user", L"owner", privilege4, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay4_out.pdf");
ถอดรหัสไฟล์ PDF โดยใช้ C++
ต่อไปนี้เป็นขั้นตอนในการถอดรหัสไฟล์ PDF โดยใช้ Aspose.PDF for C++
- โหลดไฟล์ PDF โดยใช้คลาส Document และระบุเส้นทางและรหัสผ่านของเอกสาร
- ถอดรหัสไฟล์โดยใช้วิธี Document->Decrypt()
- บันทึก PDF ที่ถอดรหัสโดยใช้เมธอด Document->Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีถอดรหัส PDF โดยใช้ C++
For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// โหลดเอกสาร PDF ที่มีอยู่
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\Decrypt.pdf", L"password");
// ถอดรหัส PDF
doc->Decrypt();
// บันทึกเอกสารที่อัปเดต
doc->Save(L"..\\Data\\SecurityAndSignatures\\Decrypt_out.pdf");
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีเข้ารหัสหรือถอดรหัสไฟล์ PDF โดยใช้ C++ ตัวอย่างโค้ดยังแสดงวิธีตั้งค่าสิทธิ์ต่างๆ เมื่อเข้ารหัสไฟล์ PDF คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ C++ PDF API ได้โดยใช้ เอกสารประกอบ