Шифрование PDF — это процесс защиты документа с помощью пароля, а также некоторых криптографических алгоритмов, включая AES или RC4. Вы также можете установить различные привилегии, чтобы ограничить доступ пользователя к различным операциям. Например, вы можете разрешить только печать, добавление аннотаций, заполнение форм и т. д. В этой статье вы узнаете, как шифровать PDF-файлы с помощью C++. Кроме того, в этой статье также рассказывается, как установить различные привилегии и расшифровать защищенные паролем PDF-файлы с помощью C++.
- C++ API для шифрования или расшифровки PDF-файлов
- Шифрование PDF-файлов с помощью C++
- Расшифровать файлы PDF с помощью C++
C++ API для шифрования или расшифровки PDF-файлов
Aspose.PDF for C++ — это собственный API C++, который позволяет создавать, читать и управлять PDF-документами. Кроме того, он также позволяет шифровать PDF-файлы с помощью паролей и расшифровывать зашифрованные PDF-файлы с помощью нескольких строк кода. Вы можете загрузить API из раздела downloads или установить его с помощью NuGet.
Шифрование PDF-файлов с помощью C++
Ниже приведены шаги для шифрования файла PDF с помощью Aspose.PDF для C++.
- Загрузите документ PDF с помощью класса Document.
- Используйте класс DocumentPrivilege для установки различных привилегий, таких как разрешение печати, изменение содержимого и т. д.
- Вызовите Document.Encrypt(String, String, SharedPtr , CryptoAlgorithm, bool) для шифрования PDF.
- Сохраните PDF-файл, используя метод Документ->Сохранить(Строка).
В следующем примере кода показано, как зашифровать файл 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");
// Способ 1: прямое использование предопределенной привилегии.
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");
// Способ 3: на основе предопределенной привилегии и изменения определенной комбинации разрешений 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 для C++.
- Загрузите файл PDF с помощью класса Document и укажите путь к документу и пароль.
- Расшифруйте файл, используя метод Документ->Расшифровать().
- Сохраните расшифрованный PDF-файл, используя метод Документ->Сохранить(Строка).
В следующем примере кода показано, как расшифровать 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, используя документацию.