複数のPDFファイルを1つにまとめる

複数のPDFファイルを1つにまとめるプログラム例は以下の通り。

 

import fitz  # PyMuPDFのモジュール
import os

#関数の定義
def merge_pdfs(input_folder, output_pdf_path):

    # 出力先PDFファイルを作成する
    output_pdf_document = fitz.open()

    # 入力フォルダ内のすべてのPDFファイルを取得し、ファイル名の昇順でソートする
    pdf_files = sorted([f for f in os.listdir(input_folder) if f.endswith(".pdf")])

    # 各PDFファイルを順番にマージする
    for pdf_file in pdf_files:
        pdf_file_path = os.path.join(input_folder, pdf_file)
        input_pdf_document = fitz.open(pdf_file_path)
        output_pdf_document.insert_pdf(input_pdf_document)

        print(f"{pdf_file} マージ")

        # 入力PDFドキュメントを閉じる
        input_pdf_document.close()

    # 出力先PPDFファイルを保存する
    output_pdf_document.save(output_pdf_path)
    output_pdf_document.close()

    print(f"マージが完了しました。 {output_pdf_path}")

# メイン処理の定義
if __name__ == "__main__":

    # 入力と出力のパスを指定する
    input_folder = "D:\lab\pdf\output"          # 入力フォルダのパス
    output_pdf_path = "D:\lab\pdf\merged.pdf"   # 出力PDFファイルのパス

    # 入力フォルダが存在しない場合は終了する
    if not os.path.exists(input_folder):
        print(f"フォルダが存在しません。")
        exit()

    # 関数の呼び出し
    merge_pdfs(input_folder, output_pdf_path)