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')