PythonでのPDF処理:PyPDF2を使ってPDFファイルをパスワード保護する方法

PythonでPDF処理をする際、PyPDF2は有用なライブラリの1つです。この記事では、PyPDF2を使用して、PDFファイルをパスワード保護する方法について詳しく説明します。また、特定のフォルダ内全てのファイルにパスワード保護をかける方法も紹介します。以下は、実際にPyPDF2を使用してPDFファイルをパスワード保護する方法の手順です。

PyPDF2をインストールする

最初に、PyPDF2ライブラリをインストールする必要があります。ターミナルまたはコマンドプロンプトで、以下のコマンドを実行してください。

pip install PyPDF2

PDFファイルを開く

次に、保護するPDFファイルを開きます。以下のコードを使用して、PDFファイルを開きます。 この例では'example.pdf'というファイルを開きます。

import PyPDF2

# ファイルを開く
pdf_file = open('example.pdf', 'rb')

# PDFリーダーオブジェクトを作成する
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

パスワードを設定する

次に、PDFファイルに設定するパスワードを決定します。以下のコードを使用して、パスワードを設定します。 ここでは'mypassword'というパスワードを設定します。

# パスワードを設定する
password = 'mypassword'

PDFファイルを保護する

最後に、PDFファイルを保護するために、以下のコードを使用します。

# PDFライターオブジェクトを作成する
pdf_writer = PyPDF2.PdfFileWriter()

# ページを追加する
for page_num in range(pdf_reader.numPages):
    pdf_writer.addPage(pdf_reader.getPage(page_num))

# PDFファイルを保護する
pdf_writer.encrypt(user_pwd=password, owner_pwd=None, 
                   use_128bit=True)

# 保護されたPDFファイルを保存する
result_pdf = open('example_protected.pdf', 'wb')
pdf_writer.write(result_pdf)
result_pdf.close()

# 元のPDFファイルを閉じる
pdf_file.close()

特定のフォルダの全てのファイルをパスワード保護する

Pythonを使用して、指定したフォルダ内のすべてのPDFファイルにパスワードを設定することができます。osモジュールを利用して指定したフォルダ内のすべてのPDFファイルを検索する必要があります。以下のコードを使用して、指定したフォルダ内のPDFファイルを検索します。下記は指定したフォルダ内の全てのPDFにパスワード設定するコードです。

import os
import PyPDF2

# フォルダパスを指定する
folder_path = '/path/to/folder'

# フォルダ内のPDFファイルを検索する
pdf_files = []
for filename in os.listdir(folder_path):
    if filename.endswith('.pdf'):
        pdf_files.append(os.path.join(folder_path, filename))

# パスワードを設定する
password = 'mypassword'

# 各PDFファイルを保護する
for pdf_file in pdf_files:
    # PDFファイルを開く
    pdf_file_obj = open(pdf_file, 'rb')
    pdf_reader = PyPDF2.PdfFileReader(pdf_file_obj)
    
    # PDFライターオブジェクトを作成する
    pdf_writer = PyPDF2.PdfFileWriter()
    
    # ページを追加する
    for page_num in range(pdf_reader.numPages):
        pdf_writer.addPage(pdf_reader.getPage(page_num))
    
    # PDFファイルを保護する
    pdf_writer.encrypt(user_pwd=password, owner_pwd=None, use_128bit=True)
    
    # 保護されたPDFファイルを保存する
    result_pdf = open(pdf_file, 'wb')
    pdf_writer.write(result_pdf)
    result_pdf.close()
    
    # 元のPDFファイルを閉じる
    pdf_file_obj.close()

以上が、指定したフォルダ内のすべてのPDFファイルにパスワードを設定する方法の手順です。このコードを使用することで、大量のPDFファイルを一括して保護することができます。

まとめ

PyPDF2を使用してPDFファイルをパスワード保護する方法を紹介しました。PyPDF2を使用すると、簡単かつ迅速にPDFファイルを保護できます。これらのプログラムはPythonの基本的な文法とライブラリで実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com