複数の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)