はじめに
PythonでPDFを結合するツールをご紹介します。
コード
入力ディレクトリ存在する全てのPDFファイルを取得し、出力ディレクトリに1つのPDFファイルとして結合します。
import os
import datetime
import glob
import pypdf
INPUT_DIR = "pdf-merge-input"
OUTPUT_FILE_NAME = "pdf-merge-output/merge_%Y%m%d_%H%M%S_%f.pdf"
def main():
merge()
def merge():
# 入力ディレクトリ作成
input_dir = INPUT_DIR
if not os.path.isdir(input_dir):
os.makedirs(input_dir)
# 出力ディレクトリ作成
dt_now = datetime.datetime.now()
output_file = dt_now.strftime(OUTPUT_FILE_NAME)
output_dir = os.path.dirname(output_file)
if not os.path.isdir(output_dir):
os.makedirs(output_dir)
# 入力ファイル一覧取得
input_files = glob.glob(os.path.join(input_dir, "*"))
input_files = list(filter(lambda x: os.path.isfile(x), input_files))
input_files = sorted(input_files)
# PDFオープン
writer = pypdf.PdfWriter()
# PDF追加
for input_file in input_files:
writer.append(input_file)
print(f"input_file:{input_file}")
# PDF出力
if len(input_files) > 0:
writer.write(output_file)
print(f"output_file:{output_file}")
# PDFクローズ
writer.close()
if __name__ == "__main__":
main()
使い方
このツールの使い方をご説明します。
【手順1】インストール(初回のみ)
以下のコマンドを入力してPythonにpypdfライブラリをインストールします。
pip install pypdf
【手順2】Python準備(初回のみ)
上記コードをコピーし「python-pdf-merge.py」 ファイルとして保存してください。
【手順3】ディレクトリ準備(初回のみ)
以下のコマンドを入力して必要なディレクトリを作成します。
python ./python-pdf-merge.py
【手順4】PDF準備
作成された「pdf-merge-input」ディレクトリに結合したいPDFファイルを格納します。
※ファイル名の昇順で結合されますので、結合の順番はファイル名で調整してください。
【手順5】PDF結合
以下のコマンド入力すると「pdf-merge-output」ディレクトリに結合されたPDFファイルが作成されます。
python ./python-pdf-merge.py