JavaでPDFファイルを暗号化する
v2026.05
PDFの暗号化はドキュメントの内容へのアクセスを制限し、正しいパスワードを持つ受信者のみがファイルを開いて読めるようにします。JPedalは、Javaでパスワード保護を適用し、暗号化の設定をプログラムから行うためのシンプルなAPIを提供しています。
このチュートリアルでは、JPedalのPDF Manipulator クラスを使用します。このクラスには、ドキュメント処理ワークフローに役立つ多くの機能が含まれています。
JPedalをMaven
またはGradle
の依存関係としてプロジェクトに追加し、PdfManipulatorを使用してPDFを読み込み、暗号化して書き出します。
final PdfManipulator pdf = new PdfManipulator();
pdf.loadDocument(new File("inputFile.pdf"));
pdf.writeDocument(new File("outputFile.pdf"), "password".getBytes(StandardCharsets.UTF_8));
pdf.closeDocument();
writeDocument()に渡したパスワードが、ドキュメントを開く際に必要なパスワードとして設定されます。このメソッドにはbyte[]およびOutputStreamを引数に取るバージョンも用意されています。
詳細はPdfManipulator Javadoc を参照してください。
writeDocument()を呼び出す前に、EncryptionSettingsを使用して追加の暗号化動作を設定できます。
たとえば、ドキュメントのメタデータを暗号化するかどうかを設定できます。
pdf.getEncryptionSettings().setEncryptMetadata(false);
利用可能なすべてのオプションについては、EncryptionSettings Javadoc を参照してください。
JPedalで暗号化されたPDFを読み込むには、loadDocument()にパスワードを渡します。
pdf.loadDocument(new File("encryptedFile.pdf"), "password".getBytes(StandardCharsets.UTF_8));
これは、既存のドキュメントを新しいパスワードで再暗号化する際に役立ちます。
はい。loadDocument()に既存のパスワードを渡し、変更を加えた後、新しいパスワードを指定してwriteDocument()を呼び出してください。
ドキュメント管理システムの中には、ファイルを完全に開かずにPDFのメタデータ(タイトル、作成者、件名)を読み取るものがあります。メタデータの暗号化を無効にすることで、そのようなシステムがファイルをインデックス化できるようになりながら、ドキュメントの内容は引き続き保護された状態を維持できます。
いいえ。暗号化は書き込み時に適用され、既存のドキュメント構造をラップする形で行われます。注釈、ブックマーク、その他のコンテンツはそのまま維持されます。
- PDFファイルのサニタイズ — JavaScript、メタデータ、埋め込みファイルの除去
- PDFの最適化 — 配布前のファイルサイズ削減
- PDFファイルの結合 — 暗号化前のPDF結合
- PDF Manipulatorの概要 — 操作機能の完全なリスト
