この記事では、JavaでプログラムによってPDFファイルを暗号化および復号化するためのステップバイステップガイドとコードサンプルを提供します。
さまざまな場合、PDFドキュメントは、利害関係者間で共有される前に暗号化されます。暗号化により、ドキュメントは不正アクセスやコンテンツの改ざんから保護されます。 PDFドキュメントを保護するには、いくつかの一般的な方法があります。パスワードを使用してPDFを暗号化するか、印刷、編集、コピーなどのユーザーのアクセス許可を制限します。この記事では、JavaでPDFを暗号化または復号化する方法について説明します。さらに、PDFドキュメントでユーザーの権限を制限する方法を学習します。
PDFを暗号化または復号化するJavaAPI-無料ダウンロード
Aspose.PDF for Javaは、PDFの暗号化と復号化をシームレスに操作できる機能豊富なPDF操作APIです。さらに、PDFドキュメント内のユーザーの権限をプログラムで変更できます。 APIを無料でダウンロードするか、次のMaven構成を使用してインストールすることができます。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
JavaでPDFファイルを暗号化する
PDFドキュメントを暗号化するには、ドキュメントを開いてアクセスするために使用するパスワードを設定する必要があります。これに加えて、暗号化で使用する次の暗号化アルゴリズムのいずれかを選択できます。
以下は、JavaでPDFファイルを暗号化する手順です。
- Documentクラスを使用してPDFドキュメントをロードします。
- Document.encrypt( “user \ password”、 “owner \ password”、0、CryptoAlgorithm)メソッドを使用してPDFを暗号化します。
- Document.save(string)メソッドを使用して暗号化されたPDFを保存します。
次のコードサンプルは、Javaを使用してPDFドキュメントを暗号化する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document document = new Document("input.pdf");
// PDFを暗号化する
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// 更新されたPDFを保存
document.save("Encrypted_output.pdf");
暗号化されたPDFを開くと、次のダイアログが表示されます。
JavaでPDFファイルを復号化する
暗号化されたPDFドキュメントを復号化するには、ユーザーまたは所有者のパスワードが必要です。以下は、JavaでPDFファイルを復号化する手順です。
- コンストラクターでパスワードを指定して、Documentクラスを使用して暗号化されたPDFをロードします。
- Document.decrypt()メソッドを呼び出して、PDFを復号化します。
- Document.save(string)メソッドを使用して、復号化されたPDFドキュメントを保存します。
次のコードサンプルは、Javaを使用して暗号化されたPDFを復号化する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document document = new Document("input.pdf", "password");
// PDFを復号化
document.decrypt();
// 更新されたPDFを保存
document.save("output.pdf");
Javaを使用してPDFのセキュリティ権限を変更する
PDFドキュメントの暗号化中に、さまざまな操作を実行するためのユーザーのアクセスを制限することもできます。設定できる権限は次のとおりです。
- ドキュメントの印刷–ドキュメントの印刷を許可します。
- コンテンツの変更–コンテンツの変更を許可します。
- コンテンツの抽出–ドキュメントからコンテンツをコピーできます。
- テキスト注釈の変更–テキスト注釈を追加または更新できます。
- フォームに入力–インタラクティブフォームフィールドに入力できます。
- 障害のあるコンテンツの抽出–テキストとグラフィックを抽出できます(障害のあるユーザー向け)。
- ドキュメントの組み立て–ページの挿入、回転、削除、およびブックマークやサムネイル画像の作成を可能にします。
- 印刷品質–ドキュメントの高解像度印刷を可能にします。
以下は、PDFドキュメントの権限を設定または変更する手順です。
- Documentクラスを使用してPDFをロードします。
- DocumentPrivilegeクラスを使用して権限を設定します。
- 前の例で行ったように、PDFを暗号化して保存します。
次のコードサンプルは、Javaを使用してPDFドキュメントの権限を変更する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
Document document = new Document("inputFile.pdf");
try /* JAVA: was using */
{
DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
documentPrivilege.setAllowScreenReaders(true);
documentPrivilege.setAllowPrint(true);
document.encrypt("user", "owner", documentPrivilege, CryptoAlgorithm.AESx128, false);
document.save("outputFile.pdf");
} finally {
if (document != null)
document.dispose();
}
暗号化されたPDFファイルの権限は次のとおりです。
結論
この記事では、JavaでPDFファイルを暗号化または復号化する方法を学びました。さらに、JavaでプログラムによってPDFドキュメントのユーザー権限を変更する方法を見てきました。 ドキュメントを使用して、JavaPDFAPIの詳細を調べることができます。