加密解密pdf C++

PDF 加密是使用密码以及一些加密算法(包括 AESRC4)来保护文档的过程。您还可以设置不同的权限来限制用户对不同操作的访问。例如,您只能允许打印、添加注释、填写表格等。在本文中,您将学习如何使用 C++ 加密 PDF 文件。此外,本文还介绍了如何使用 C++ 设置不同的权限和解密受密码保护的 PDF 文件。

用于加密或解密 PDF 文件的 C++ API

Aspose.PDF for C++ 是一个原生 C++ API,可让您创建、阅读和操作 PDF 文档。此外,它还允许您使用密码加密 PDF 并在几行代码内解密加密的 PDF。您可以从 下载 部分下载 API,或使用 NuGet 安装它。

使用 C++ 加密 PDF 文件

以下是使用 Aspose.PDF for C++ 加密 PDF 文件的步骤。

以下代码示例展示了如何使用 C++ 加密 PDF 文件。

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");

// 方式一:直接使用预定义的权限。
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");

使用 C++ 解密 PDF 文件

以下是使用 Aspose.PDF for C++ 解密 PDF 文件的步骤。

以下代码示例展示了如何使用 C++ 解密 PDF。

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");

结论

在本文中,您学习了如何使用 C++ 加密或解密 PDF 文件。该代码示例还展示了如何在加密 PDF 文件时设置不同的权限。您可以使用 文档 探索有关 C++ PDF API 的更多信息。

也可以看看