PDFファイルのページを逆順に並べ替えて新しいPDFファイルに保存するためのPythonコード

PDFファイルのページを逆順に並べ替えて新しいPDFファイルに保存するためのPythonスクリプトです。以下に各部分の詳細な説明をします。

インポート

from PyPDF2 import PdfFileReader, PdfFileWriter

この行は、PyPDF2ライブラリからPdfFileReaderとPdfFileWriterクラスをインポートしています。これらはそれぞれPDFファイルを読み取るためのクラスと、PDFファイルを書き出すためのクラスです。

関数定義

def merge_pdfs(path, output):
  pdf_writer = PdfFileWriter()
  pdf_reader = PdfFileReader(path)
  maxPageNum = pdf_reader.getNumPages()
  # 最後のページから読み込んで、新しいPDFに追加していく
  for page in range(maxPageNum, 0, -1):
    pdf_writer.addPage(pdf_reader.getPage(page-1))
  # 新しいPDFに出力
  with open(output, 'wb') as out: pdf_writer.write(out)
  • merge_pdfs関数の定義:

    • path: 入力PDFファイルのパス

    • output: 出力PDFファイルのパス

  • pdf_writer = PdfFileWriter():

    • 新しいPDFを書き込むためのPdfFileWriterオブジェクトを作成。

  • pdf_reader = PdfFileReader(path):

    • 指定されたpathのPDFファイルを読み込むためのPdfFileReaderオブジェクトを作成。

  • maxPageNum = pdf_reader.getNumPages():

    • 入力PDFの総ページ数を取得。

  • ページの逆順追加ループ:

    • for page in range(maxPageNum, 0, -1)で総ページ数から1ページずつ減らしながらループ。

    • pdf_writer.addPage(pdf_reader.getPage(page-1))で各ページを逆順にPdfFileWriterオブジェクトに追加。

  • 新しいPDFファイルの書き出し:

    • with open(output, 'wb') as out: pdf_writer.write(out)で指定された出力ファイルに書き出し。

メイン部分

if __name__ == '__main__':
  # ここにファイル名を設定
  path = '逆ページになっている.pdf'
  # outputに出力ファイル名を設定
  merge_pdfs(path, output='reverced.pdf')
  • エントリーポイントの確認:

    • if __name__ == '__main__':は、このスクリプトが直接実行された場合に以下のコードが実行されるようにします。

  • ファイル名の設定:

    • path = '逆ページになっている.pdf': 入力PDFファイルのパス。

    • merge_pdfs(path, output='reverced.pdf'): 入力ファイルを読み込んで、逆順に並べ替えたPDFファイルをreverced.pdfとして保存。

このスクリプトを実行すると、指定されたPDFファイルのページが逆順に並べ替えられ、新しいPDFファイルとして保存されます。
以下が全て書き出したもの。

from PyPDF2 import PdfFileReader, PdfFileWriter

def merge_pdfs(path, output):
  pdf_writer = PdfFileWriter()
  pdf_reader = PdfFileReader(path)
  maxPageNum = pdf_reader.getNumPages()
  # 最後のページから読み込んで、新しいPDFに追加していく
  for page in range(maxPageNum, 0, -1):
    pdf_writer.addPage(pdf_reader.getPage(page-1))
  # 新しいPDFに出力
  with open(output, 'wb') as out: pdf_writer.write(out)

if __name__ == '__main__':
  # ここにファイル名を設定
  path = '逆ページになっている.pdf'
  # outputに出力ファイル名を設定
  merge_pdfs(path, output='reverced.pdf')

いいなと思ったら応援しよう!