PDFファイルのページごとに角度を変えて回転させたい場面、意外と多いですよね。
たとえばスキャンしたPDFに一部だけ横向きのページが混じっている場合など。
今回は、Pythonのライブラリ「PyPDF2」を使って、ページごとに異なる角度で回転させる方法を紹介します。
スクリプトはシンプルなので、業務の自動化やデータ処理の効率化にもすぐ役立てられます!
使用ライブラリ
今回使用するのは PyPDF2 というPDF操作用のライブラリです。
以下のコマンドでインストールできます。
pip install PyPDF2ちなみに、Google Colabでインストールするときは「!pip install PyPDF2」と頭にビックリマークを付けます。
PDFをページごとに回転するコード
コードの概要
- 対象のPDFファイルをパスで指定(例:
aaa/bbb/xxx.pdf) - 回転させるページごとの角度はリスト形式で指定する
- 読み込んだPDFをページごとに指定した回転角度で回転させる
- 結果を
aaa/bbb/xxx_rotate.pdfという名前で保存する
コード
# 必要ライブラリ
from PyPDF2 import PdfReader, PdfWriter
# 対象PDFファイルのフルパス
input_path = "aaa/bbb/xxx.pdf"
output_path = input_path.replace(".pdf", "_rotate.pdf")
# 各ページの回転角度を指定(ページ数と一致している必要があります)
rotation_list = [0, 90, 0, 180, 270]
# PDFを読み込み
reader = PdfReader(input_path)
writer = PdfWriter()
# ページごとに回転処理
for i, page in enumerate(reader.pages):
angle = rotation_list[i] if i < len(rotation_list) else 0 # ページ数以上の指定があれば0度
page.rotate(angle) # rotate() は in-place で回転
writer.add_page(page)
# 回転後のPDFを保存
with open(output_path, "wb") as f:
writer.write(f)
print("PDFの回転処理が完了しました:", output_path)
補足
rotation_listの要素数がページ数より少ない場合、足りないページは回転なし(0度)になります。PyPDF2はページ全体をrotate()メソッドで時計回りに回転します。- 回転角度は
0,90,180,270のいずれかにしてください。
まとめ
PyPDF2 を使えば、PDFのページ単位での回転も簡単に自動処理できます。
手作業でのページ回転に時間をかけていた方は、ぜひ一度お試してみてください!


コメント