【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")