pythonでPDFファイルを結合するプログラムです。
使用ソフトはVScode。
PDF編集ライブラリの " pypdf " をインストールしておきます。
下記のコードでインストールできます。
pip install pypdf
以下、コードです。
#PDF結合
iimport glob
import os
import sys
from datetime import datetime
from pypdf import PdfWriter
import re
def natural_sort_key(s):
"""文字列を自然順ソートできるキーを生成"""
return[int(text) if text.isdigit() else text.lower()
for text in re.split(r'(\d+)',s)]
def get_base_dir():
"""実行ファイルの基準ディレクトリを取得"""
if getattr(sys,'frozen',False):
return os.path.dirname(sys.executable)
else:
return os.path.dirname(os.path.abspath(__file__))
#基準ディレクトリを取得
base_dir=get_base_dir()
input_dir=os.path.join(base_dir,)
output_dir=os.path.join(base_dir,)
#現在の日時を取得してタイムスタンプを作成
timestamp=datetime.now().strftime("%Y%m%d_%H%M%S")
output_file_name=f"merged_{timestamp}.pdf"
"PDFファイルを取得(自然順ソートを適用)"
pdf_files=sorted(glob.glob(os.path.join(input_dir,"*.pdf")),key=natural_sort_key)
#PDFの場合
merger=PdfWriter()
try:
if not pdf_files:
print(f"指定されたディレクトリにPDFファイルがありません:{input_dir}")
else:
for pdf in pdf_files:
merger.append(pdf)
os.makedirs(output_dir,exist_ok=True)
output_path=os.path.join(output_dir,output_file_name)
merger.write(output_path)
print(f"PDFの結合が完了しました:{output_path}")
except Exception as e:
print(f"エラーが発生しました:{e}")
finally:
merger.close()
pythonプログラムを保存したフォルダーに結合したい複数のPDFファイルを保存してから実行するだけです。
結合はファイル名順にファイルが結合されるため、ファイル名を1からの数字順にしておくと順番通りに結合できます。
コメント
コメントを投稿