PDF Pythonツール

PythonでPDFファイルを簡単にページごとに分割する方法

概要

このブログでは、Pythonを用いてPDFファイルをページごとに分割し、それぞれ別のファイルとして保存する方法を紹介します。GUIを使用してファイルを選択するため、コードの利用がより便利になっています。この方法は、大量のPDFデータを扱う際に特に有用です。

使用例

このプログラムは、PDFファイルが多数のページから構成されており、特定のページだけを別のファイルとして保存したい場合に便利です。例えば、契約書やレポートの特定のページだけを抽出して共有する場合などに役立ちます。

必要なPythonライブラリとインストール方法

このスクリプトを実行するには、PyPDF2というライブラリが必要です。以下のコマンドを実行してインストールしてください:
pip install PyPDF2

また、このスクリプトはPythonの標準GUIライブラリtkinterも使用していますが、このライブラリはほとんどのPython環境にデフォルトでインストールされています。

使用手順

  1. 上記のコマンドを使用してPyPDF2をインストールします。
  2. 下記のプログラムをコピーし、任意のテキストエディタに貼り付けて.pyファイルを作成します。
  3. Pythonスクリプトを実行すると、ファイル選択ダイアログが表示されるので、分割したいPDFファイルを選択します。
  4. 次に、出力先のフォルダをダイアログから選択します。
  5. 処理が完了すると、選択したフォルダに各ページが分割されたPDFファイルが保存されます。

注意点

  • このスクリプトは、PDFファイルが読み込み可能な状態であることを前提としています。パスワードで保護されているPDFファイルや、破損しているファイルでは動作しない可能性があります。
  • 出力されるファイル名は自動で生成されますが、既に同名のファイルが存在する場合は上書きされるため注意が必要です。

プログラム

下記のコードをメモ帳などに丸々コピーしてpythonファイル(split_pdf.py)にしてください。

import tkinter as tk
from tkinter import filedialog
import PyPDF2
import os

def split_pdf(input_path, output_folder):
base_filename = os.path.splitext(os.path.basename(input_path))[0]
input_pdf = PyPDF2.PdfReader(input_path)

for page_number in range(len(input_pdf.pages)):
output_pdf = PyPDF2.PdfWriter()
output_pdf.add_page(input_pdf.pages[page_number])

output_filename = f"{base_filename}-page{page_number + 1:04d}.pdf"
output_path = os.path.join(output_folder, output_filename)

with open(output_path, 'wb') as output_file:
output_pdf.write(output_file)

print(f"ページ {page_number + 1} が {output_path} として保存されました。")

def choose_file_and_split():
root = tk.Tk()
root.withdraw()

input_file_path = filedialog.askopenfilename(
title="開くPDFファイルを選択してください",
filetypes=[("PDF files", "*.pdf")]
)

if not input_file_path:
print("ファイルが選択されませんでした。")
return

output_folder_path = filedialog.askdirectory(title="出力先フォルダを選択してください")

if not output_folder_path:
print("出力先フォルダが選択されませんでした。")
return

split_pdf(input_file_path, output_folder_path)

choose_file_and_split()

あるいは、下のテキストファイルをダウンロードし、「.txt」を「.py」に変えることでそのまま使えます。

まとめ

この記事では、Pythonを使用してPDFファイルを簡単にページごとに分割する方法を説明しました。GUIを利用してファイルの選択と保存先を簡単に設定できるため、非プログラマーにも扱いやすいツールです。大量のPDFデータを効率的に処理するための有効な方法として活用してください。

-PDF, Pythonツール