Back to Blog

    Developer Blog

    How to Encrypt PDF files using Foxit PDF SDK (C++)

    Foxit PDF SDK for Windows

    Foxit PDF SDK provides a range of encryption and decryption functions to meet different levels of document security protection. Users can use regular password encryption and certificate-driven encryption, or use their own security handler for custom security implementation. It also provides APIs to integrate with the third-party security mechanism (Microsoft RMS). These APIs allow developers to work with the Microsoft RMS SDK to both encrypt (protect) and decrypt (unprotect) PDF documents.

    Note: For more detailed information about the RMS encryption and decryption, please refer to the simple demo “security” in the “examples\simple_demo” folder of the download package.

    Example:

    How to encrypt a PDF file with a Certificate

    #include "include/pdf/fs_pdfdoc.h"#include "include/pdf/fs_security.h"using namespace foxit;using namespace foxit::common;using foxit::common::Library;using namespace pdf;...PDFDoc doc(input_file);ErrorCode error_code = doc.Load(); if (error_code != foxit::e_ErrSuccess) { return false; }// Do encryption.StringArray envelopes;String initial_key;WString cert_file_path = input_path + L"foxit.cer";if (!GetCertificateInfo((const char*)String::FromUnicode(cert_file_path), envelopes, initial_key, true, 16)) { return false;}CertificateSecurityHandler handler;CertificateEncryptData encrypt_data(true, SecurityHandler::e_CipherAES, envelopes);handler.Initialize(encrypt_data, initial_key);doc.SetSecurityHandler(handler);WString output_file = output_directory + L"certificate_encrypt.pdf";doc.SaveAs(output_file, PDFDoc::e_SaveFlagNoOriginal);...

    How to encrypt a PDF file with Foxit DRM

    #include "include/pdf/fs_pdfdoc.h"#include "include/pdf/fs_security.h"using namespace foxit;using namespace foxit::common;using foxit::common::Library;using namespace pdf;...PDFDoc doc(input_file);ErrorCode error_code = doc.Load();if (error_code != foxit::e_ErrSuccess) { return false;}// Do encryption.DRMSecurityHandler handler = DRMSecurityHandler();const char* file_id = "Simple-DRM-file-ID";String initialize_key = "Simple-DRM-initialize-key";DRMEncryptData encrypt_data(true, "Simple-DRM-filter", SecurityHandler::e_CipherAES, 16, true, 0xfffffffc);handler.Initialize(encrypt_data, file_id, initialize_key);doc.SetSecurityHandler(handler);WString output_file = output_directory + L"foxit_drm_encrypt.pdf";doc.SaveAs(output_file, PDFDoc::e_SaveFlagNoOriginal);...