
A criptografia de PDF é o processo de proteção do documento usando uma senha, bem como alguns algoritmos criptográficos, incluindo AES ou RC4. Você também pode definir diferentes privilégios para limitar o acesso do usuário a diferentes operações. Por exemplo, você só pode permitir imprimir, adicionar anotações, preencher formulários etc. Neste artigo, você aprenderá como criptografar arquivos PDF usando C++. Além disso, este artigo também aborda como definir diferentes privilégios e descriptografar arquivos PDF protegidos por senha usando C++.
- API C++ para criptografar ou descriptografar arquivos PDF
- Criptografar arquivos PDF usando C++
- Descriptografar arquivos PDF usando C++
API C++ para criptografar ou descriptografar arquivos PDF
Aspose.PDF for C++ é uma API C++ nativa que permite criar, ler e manipular documentos PDF. Além disso, também permite criptografar PDFs com senhas e descriptografar os PDFs criptografados em poucas linhas de código. Você pode baixar a API na seção downloads ou instalá-la usando NuGet.
Criptografar arquivos PDF usando C++
A seguir estão as etapas para criptografar um arquivo PDF usando Aspose.PDF para C++.
- Carregue o documento PDF usando a classe Document.
- Use a classe DocumentPrivilege para definir diferentes privilégios, como permitir a impressão, permitir a modificação de conteúdo e etc.
- Chame Document.Encrypt(String, String, SharedPtr , CryptoAlgorithm, bool) para criptografar o PDF.
- Salve o PDF usando o método Document->Save(String).
O exemplo de código a seguir mostra como criptografar um arquivo PDF usando C++.
For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Carregar um documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\input.pdf");
// Way1: Usando privilégios predefinidos diretamente.
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: Com base em um privilégio predefinido e alterar algumas permissões específicas.
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: Com base em um privilégio predefinido e alterar algumas combinações de permissões específicas do 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: Mistura o way2 e 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");
Descriptografar arquivos PDF usando C++
A seguir estão as etapas para descriptografar um arquivo PDF usando Aspose.PDF para C++.
- Carregue o arquivo PDF usando a classe Document e forneça o caminho e a senha do documento.
- Descriptografar o arquivo usando o método Document->Decrypt().
- Salve o PDF descriptografado usando o método Document->Save(String).
O exemplo de código a seguir mostra como descriptografar um PDF usando C++.
For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Carregar um documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\Decrypt.pdf", L"password");
// Descriptografar PDF
doc->Decrypt();
// Salve o documento atualizado
doc->Save(L"..\\Data\\SecurityAndSignatures\\Decrypt_out.pdf");
Conclusão
Neste artigo, você aprendeu como criptografar ou descriptografar arquivos PDF usando C++. O exemplo de código também mostrou como definir diferentes privilégios ao criptografar um arquivo PDF. Você pode explorar mais sobre a API de PDF C++ usando documentação.