ライブラリの準備
まず使用するライブラリを準備します。
ライブラリのインストール
今回、PDF編集にPyPDF2というライブラリを使用します。
pip install pypdf2
ライブラリのインポート
PyPDF2の他にフォルダの位置を指定するためにosライブラリを使用します。
osはPythonをインストールした時に標準で組み込まれているため、インストールは不要です。
import os
import PyPDF2
ファイル処理の関数作成
以下のような関数を記述します。
フォルダの中のファイルを調べ1つのPDFにまとめます。
def merge_pdfs_in_folder(folder_path, output_filename):
# 指定されたフォルダ内のファイルをリストアップ
files = [f for f in os.listdir(folder_path) if f.endswith('.pdf')]
files.sort() # ファイル名順にソート
# 絶対パスに変換
pdfs = [os.path.join(folder_path, f) for f in files]
# PDFマージオブジェクトの作成
pdf_merger = PyPDF2.PdfMerger()
# リスト内の各PDFを追加
for pdf in pdfs:
pdf_merger.append(pdf)
# PDFの保存
with open(output_filename, 'wb') as f:
pdf_merger.write(f)
フォルダを指定してPDFをまとめる
先ほど作成した関数で実際にPDFをまとめます。
folderにまとめたいフォルダの位置を、outputにまとめたPDFファイルの名前を指定してください。
このPythonコードのファイルが保存されている同じ場所に「pdf_folder」というフォルダを作り、そこにまとめたいPDFファイルを入れておけば大丈夫です。
folder = './pdf_folder' # PDFファイルが格納されているフォルダ
output = 'merged.pdf' # 出力ファイル名
merge_pdfs_in_folder(folder, output)
バージョンに注意
PyPDF2 3.0.0 以降ではPDFを1つにするコードが一部変更されています。
3.0.0より前のバージョンは以下のコードを使用してください。
# PDFマージオブジェクトの作成
pdf_merger = PyPDF2.PdfFileMerger()
バージョンが合わないと以下のようなエラーが出ます。
PdfFileMerger is deprecated and was removed in PyPDF2 3.0.0. Use PdfMerger instead.