概要
このブログでは、Pythonを使用して横長A3サイズなどのPDFファイルを自動で左右に分割し、特定の順序で再配置する方法を詳しく説明します。手作業による時間の浪費を減らし、効率的な文書管理を実現するための技術的アプローチを提供します。
使用例
・A3の雑誌をスキャンしたpdfファイルを用意し、本プログラムを利用してA4サイズ2枚のpdfに分割、並べ替えを行う。
必要なPythonライブラリ
PyPDF2
: PDF読み込み、編集、保存を行うためのライブラリ。tkinter
: ファイル選択ダイアログを表示するためのGUIライブラリ。
これらのライブラリをインストールするには、以下のコマンドを使用することができます。pip install PyPDF2 openpyxl
使用手順
- Pythonと
PyPDF2
ライブラリ、openpyxl
ライブラリをインストールします。 - 以下のプログラムを実行する前に、使用するPDFファイルを準備します。
- スクリプトを実行し、ファイル選択ダイアログから処理するPDFファイルを選択します。
- 処理後、ファイル保存ダイアログが表示されるので、新しいPDFファイルの保存場所とファイル名を指定します。
- プログラムがPDFファイルの分割と再配置を自動で行い、指定した場所に保存します。
プログラム
下記のコードをメモ帳などに丸々コピーしてpythonファイル(〇〇.py)にしてください。
import tkinter as tk
from tkinter import filedialog
import fitz # PyMuPDF
def split_pdf_pages(input_path, output_path):
with fitz.open(input_path) as doc:
output_pdf = fitz.open() # 新しいPDFを作成
for page_num in range(len(doc)):
page = doc.load_page(page_num) # ページを読み込む
# ページの左半分を取得
left_half = fitz.Rect(0, 0, page.rect.width / 2, page.rect.height)
# ページの右半分を取得
right_half = fitz.Rect(page.rect.width / 2, 0, page.rect.width, page.rect.height)
# 左半分を新しいPDFに追加
left_page = output_pdf.new_page(width=left_half.width, height=left_half.height)
left_page.show_pdf_page(left_page.rect, doc, page_num, clip=left_half)
# 右半分を新しいPDFに追加
right_page = output_pdf.new_page(width=right_half.width, height=right_half.height)
right_page.show_pdf_page(right_page.rect, doc, page_num, clip=right_half)
output_pdf.save(output_path)
def main():
root = tk.Tk()
root.withdraw() # Tkinterのルートウィンドウを表示しない
# 元のPDFファイルを選択
input_file_path = filedialog.askopenfilename(
title="PDFファイルを選択してください",
filetypes=[("PDF files", "*.pdf")]
)
if not input_file_path:
return
# 保存するファイル名を指定
output_file_path = filedialog.asksaveasfilename(
title="保存するファイル名を指定してください",
filetypes=[("PDF files", "*.pdf")],
defaultextension=".pdf"
)
if not output_file_path:
return
# PDFファイルを処理
split_pdf_pages(input_file_path, output_file_path)
print(f"PDFファイルが保存されました: {output_file_path}")
if __name__ == "__main__":
main()
あるいは下のテキストファイルをダウンロードし、「.txt」を「.py」に変えることでそのまま使えます。
まとめ
このブログを通じて、PythonとPyPDF2
ライブラリを使ってPDFファイルの効率的な分割と再配置を行う方法を学びました。このスクリプトは、文書処理タスクを自動化し、効率を大幅に向上させることができます。カスタマイズや拡張も可能で、さまざまなニーズに対応するために調整することができます。