【Python】2つの PDF を PyPDF2 ライブラリで結合する

投稿日:2020-06-15



ナカジ(@cp_nakajun)です。

先の記事で「PDFの回転・結合ツール」を共有しました。

【Windows】PythonでPDFの回転と結合ができるツールを作ってみたのでソースとEXEを共有します。



その記事にもソースコードは載せましたが、もう少し再利用のしやすさをと思いまして

それぞれの「機能」ごとに記事にしておこうと思います。

先の記事には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")

サポート募集中

この記事はお役に立てましたか。
よかったら、コーヒー ☕ をご馳走いただけたら励みになります。



Python学習にオススメ




独学で身につけるPython〜基礎編〜【業務効率化・自動化で残業を無くそう!】icon

【完全初心者向け】絶対に挫折させないPython入門講座icon

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2022年最新版】icon






シゴトがはかどる Python自動処理の教科書

PythonでExcel、メール、Webを自動化する本


おすすめのクリエイティブ・コーディング関連カテゴリー

クリエイティブコーディング系 講座


ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します