PDF暗号化は、パスワードと、AESまたはRC4を含むいくつかの暗号化アルゴリズムを使用してドキュメントを保護するプロセスです。さまざまな権限を設定して、さまざまな操作へのユーザーのアクセスを制限することもできます。たとえば、印刷、注釈の追加、フォームへの入力などのみを許可できます。この記事では、C++を使用してPDFファイルを暗号化する方法を学習します。さらに、この記事では、C++を使用してさまざまな特権を設定し、パスワードで保護されたPDFファイルを復号化する方法についても説明します。
PDFファイルを暗号化または復号化するためのC++API
Aspose.PDF for C++は、PDFドキュメントを作成、読み取り、操作できるネイティブC++APIです。さらに、パスワードを使用してPDFを暗号化し、暗号化されたPDFを数行のコードで復号化することもできます。 APIは、ダウンロードセクションからダウンロードするか、NuGetを使用してインストールできます。
C++を使用してPDFファイルを暗号化する
以下は、C++用のAspose.PDFを使用してPDFファイルを暗号化する手順です。
- Documentクラスを使用してPDFドキュメントをロードします。
- DocumentPrivilegeクラスを使用して、印刷の許可、コンテンツの変更の許可など、さまざまな特権を設定します。
- Document.Encrypt(string, string, SharedPtr 、CryptoAlgorithm、bool)PDFを暗号化する方法。
- Document->Save(String)メソッドを使用してPDFを保存します。
次のコードサンプルは、C++を使用してPDFファイルを暗号化する方法を示しています。
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");
// Way3:事前定義された特権に基づいて、特定のAdobeProfessional権限の組み合わせを変更します。
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");
C++を使用してPDFファイルを復号化する
以下は、C++用のAspose.PDFを使用してPDFファイルを復号化する手順です。
- Documentクラスを使用してPDFファイルをロードし、ドキュメントのパスとパスワードを入力します。
- Document->Decrypt()メソッドを使用してファイルを復号化します。
- Document->Save(String)メソッドを使用して、復号化されたPDFを保存します。
次のコードサンプルは、C++を使用してPDFを復号化する方法を示しています。
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");
結論
この記事では、C++を使用してPDFファイルを暗号化または復号化する方法を学習しました。コードサンプルは、PDFファイルを暗号化するときにさまざまな特権を設定する方法も示しています。 ドキュメントを使用して、C++PDFAPIの詳細を調べることができます。