【Python】PyPDF2でPDFをページごとに回転!

テーマはPythonのこと pythonの話

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のページ単位での回転も簡単に自動処理できます。
手作業でのページ回転に時間をかけていた方は、ぜひ一度お試してみてください!

コメント

タイトルとURLをコピーしました