2つのPDFファイルを1ページ毎相互に挟み込みつつ1つのPDFにする
職場でリクエストがあったので作ってみた。
【準備したファイル】
・pdfA.pdf
・pdfB.pdf
・pdf.py
【イメージ】
pdfA.pdf --> pageA-1, pageA-2, pageA-3, ...
pdfB.pdf --> pageB-1, PageB-2, pageB-3, ...
pdfC.pdf --> pageA-1, pageB-1, pageA-2, pageB-2, pageA-3, pageB-3, ...
【手順】
PyPDF2ライブラリのインストール
conda install -c conda-forge pypdf2
スクリプト作成
pdf.py
# ! ~/usr/bin/python
# *-# -*- coding: utf-8
import PyPDF2
# ファイルのパス
pdfA = "pdfA.pdf"
pdfB = "pdfB.pdf"
# 出力pdfオブジェクト
pdf_writer = PyPDF2.PdfFileWriter()
# pdfAオープン
f_A = open(pdfA, "rb")
pdfA_obj = PyPDF2.PdfFileReader(f_A)
# pdfBオープン
f_B = open(pdfB, "rb")
pdfB_obj = PyPDF2.PdfFileReader(f_B)
# pdfAファイルのページ数を取得
pdfA_obj.numPages
# 各PDFを1ページ毎に挟み込む。繰り返しの回数はpdfA_obj.numPagesで取得したものを設定する
for page_num in range(pdfA_obj.numPages):
page_obj = pdfA_obj.getPage(page_num)
pdf_writer.addPage(page_obj)
page_obj = pdfB_obj.getPage(page_num)
pdf_writer.addPage(page_obj)
# pdfC.pdfとして出力
pdf_output = open('pdfC.pdf', 'wb')
pdf_writer.write(pdf_output)
pdf_output.close()
実行
% python pdf.py
今後
ページ数を自動で取得して、スクリプトの編集なしで目的の動作をさせる。