0
0

More than 3 years have passed since last update.

2つのPDFファイルを1ページ毎相互にマージする

Last updated at Posted at 2020-06-24

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

今後
ページ数を自動で取得して、スクリプトの編集なしで目的の動作をさせる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0