зашифровать расшифровать pdf C++

Шифрование PDF — это процесс защиты документа с помощью пароля, а также некоторых криптографических алгоритмов, включая AES или RC4. Вы также можете установить различные привилегии, чтобы ограничить доступ пользователя к различным операциям. Например, вы можете разрешить только печать, добавление аннотаций, заполнение форм и т. д. В этой статье вы узнаете, как шифровать 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 с помощью 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-файл с помощью 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, используя документацию.

Смотрите также