El cifrado de PDF es el proceso de proteger el documento mediante una contraseña, así como algunos algoritmos criptográficos, incluidos AES o RC4. También puede establecer diferentes privilegios para limitar el acceso del usuario a diferentes operaciones. Por ejemplo, solo puede permitir la impresión, la adición de anotaciones, el llenado de formularios, etc. En este artículo, aprenderá a cifrar archivos PDF con C++. Además, este artículo también cubre cómo configurar diferentes privilegios y descifrar archivos PDF protegidos con contraseña usando C++.
- API de C++ para cifrar o descifrar archivos PDF
- Cifrar archivos PDF usando C++
- Descifrar archivos PDF usando C++
API de C++ para cifrar o descifrar archivos PDF
Aspose.PDF for C++ es una API nativa de C++ que le permite crear, leer y manipular documentos PDF. Además, también le permite cifrar archivos PDF con contraseñas y descifrar los PDF cifrados con unas pocas líneas de código. Puede descargar la API desde la sección descargas o instalarla mediante NuGet.
Cifrar archivos PDF usando C++
Los siguientes son los pasos para cifrar un archivo PDF usando Aspose.PDF for C++.
- Cargue el documento PDF utilizando la clase Document.
- Use la clase DocumentPrivilege para establecer diferentes privilegios, como permitir la impresión, permitir la modificación del contenido, etc.
- Llame a Document.Encrypt(String, String, SharedPtr , CryptoAlgorithm, bool) método para cifrar el PDF.
- Guarde el PDF usando el método Document->Save(String).
El siguiente ejemplo de código muestra cómo cifrar un archivo PDF usando C++.
For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Cargar un documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\input.pdf");
// Way1: usar privilegios predefinidos directamente.
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: Basado en un privilegio predefinido y cambiar algunos permisos específicos.
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: Basado en un privilegio predefinido y cambia alguna combinación específica de permisos de 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: Mezcla way2 y 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");
Descifrar archivos PDF usando C++
Los siguientes son los pasos para descifrar un archivo PDF usando Aspose.PDF for C++.
- Cargue el archivo PDF utilizando la clase Document y proporcione la ruta y la contraseña del documento.
- Descifre el archivo usando el método Document->Descifrar().
- Guarde el PDF descifrado utilizando el método Document->Save(String).
El siguiente ejemplo de código muestra cómo descifrar un PDF usando C++.
For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Cargar un documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\Decrypt.pdf", L"password");
// Descifrar PDF
doc->Decrypt();
// Guardar el documento actualizado
doc->Save(L"..\\Data\\SecurityAndSignatures\\Decrypt_out.pdf");
Conclusión
En este artículo, ha aprendido a cifrar o descifrar archivos PDF utilizando C++. El ejemplo de código también ha mostrado cómo establecer diferentes privilegios al cifrar un archivo PDF. Puede explorar más sobre la API de PDF de C++ usando documentación.