広告

複数のPDFのデータを1つにまとめる





ライブラリの準備

まず使用するライブラリを準備します。

ライブラリのインストール

今回、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.







記事への問い合わせはこちら

-業務効率化