【Python】2つの PDF を PyPDF2 ライブラリで結合する
投稿日:2020-06-15

ナカジ(@cp_nakajun)です。
先の記事で「PDFの回転・結合ツール」を共有しました。
その記事にもソースコードは載せましたが、もう少し再利用のしやすさをと思いまして
それぞれの「機能」ごとに記事にしておこうと思います。
先の記事にはWindowsの実行ファイル(EXE)がダウンロードできますが
本記事はソースコードのみを残します。
実行にはpythonの環境構築が必要です。
PyPDF2 で PDFを結合する
利用環境:python3
ライブラリは以下をインポートします。
- PyPDF2:PDFの結合
- os:実行Dirを移動
- datetime:出力ファイル名に日付と時刻を使う
ソースコード
GitHubにも置いてます。
・PDF-Marge.py
import os
import PyPDF2
import datetime
############# 実行DirをPythonプログラムファイルのある場所に移動 #############
os.chdir(os.path.dirname(os.path.abspath(__file__))) #pythonの実行Dirを移動する
############# 出力ファイル名を時間で指定
date = datetime.datetime.now()
OutputName = "Marge-" + str(date.year) + str(date.month) + str(date.day) + str(date.hour) + str(date.minute) + str(date.second) + ".pdf"
############# コンソール表示
print("")
print("========== 2つのPDFファイルを結合します ==========")
print("")
PDF1 = input("ファイル1を選択(ファイルパス) → ") #入力ファイル1
PDF2 = input("ファイル2を選択(ファイルパス) → ") #入力ファイル2
############# メインプログラム #############
File1 = open(PDF1, "rb")
File2 = open(PDF2, "rb")
Reader1 = PyPDF2.PdfFileReader(File1)
Reader2 = PyPDF2.PdfFileReader(File2)
Writer = PyPDF2.PdfFileWriter()
for page in range(Reader1.numPages):
Obj = Reader1.getPage(page)
Writer.addPage(Obj)
for page in range(Reader2.numPages):
Obj = Reader2.getPage(page)
Writer.addPage(Obj)
OutputFile = open(OutputName, "wb")
Writer.write(OutputFile)
OutputFile.close()
File1.close()
File2.close()
print("Finish")





