「PDFにパスワードをかけたいけど、無料で簡単にできる方法はないかな?」と思っている方に多いと思います。Pythonを使えば、わずか数行のコードでPDFファイルにパスワードを設定することができます。この記事では、「PyPDF2」ライブラリを使用して、PDFのセキュリティを高める方法をわかりやすく解説します。
さらに、PyPDF2のインストール方法や、実際のコード例まで完全網羅。プログラミング初心者の方でも安心して実践できる内容になっています。
PyPDF2とは?
PyPDF2は、PythonでPDFファイルを読み書き・編集するための人気ライブラリです。具体的には以下のような操作が可能です。
- PDFのページの抽出・削除・並び替え
- 新しいPDFの作成
- PDFの結合や分割
- パスワードの設定(暗号化)
今回は、既存のPDFファイルにパスワードを設定する方法にフォーカスして解説します。
PyPDF2のインストール方法【Windows/Mac対応】
まずは、PyPDF2をPython環境にインストールする必要があります。以下のコマンドをターミナル(またはコマンドプロンプト)に入力してください。
python3 -m pip install PyPDF2
※Pythonがインストールされていない場合は、先に公式サイトからPythonをインストールしてください。
インストール後、以下のようにバージョン確認しておくと安心です:
pip show PyPDF2
PythonコードでPDFにパスワードを設定する方法
それでは、PyPDF2を使って実際にPDFにパスワードをかけるコードを紹介します。
from PyPDF2 import PdfReader, PdfWriter
def add_password_to_pdf(input_path, output_path, password):
try:
with open(input_path, 'rb') as input_file:
reader = PdfReader(input_file)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
writer.encrypt(password)
with open(output_path, 'wb') as output_file:
writer.write(output_file)
print(f"PDFファイル '{output_path}' にパスワードが設定されました。")
except FileNotFoundError:
print(f"エラー: ファイル '{input_path}' が見つかりません。")
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")
if __name__ == "__main__":
input_pdf = "input.pdf"
output_pdf = "output_protected.pdf"
password_to_set = "your_secret_password"
add_password_to_pdf(input_pdf, output_pdf, password_to_set)
コードの解説
PdfReader:既存のPDFを読み込みます。PdfWriter:新しいPDFを書き出す準備をします。encrypt(password):指定したパスワードでPDFを暗号化します。writer.write():暗号化されたPDFを保存します。

よくあるエラーと対処法
Q1. 「ModuleNotFoundError: No module named ‘PyPDF2’」と表示される
→ PyPDF2が正しくインストールされていない可能性があります。再度pip install PyPDF2を実行してみてください。
Q2. 「FileNotFoundError」が出る
→ 指定したファイルのパスが間違っていないか確認してください。ファイル名や拡張子のミスがよくあります。

