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

2023年9月2日 広告

ライブラリの準備

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

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

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

オススメ書籍

・Python1年生

コードを書くときにどうしても最低限の知識は必要になります。
Pythonの基礎を学びたいときはこの書籍から始めるのがオススメです。
丁寧な表現で導入に向いています。

Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ
Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ

www.amazon.co.jp

・化学のためのPythonによるデータ解析・機械学習入門

データ分析に必要な最低限の知識を解説したうえで、化学プラントで得られるデータの扱い方が紹介されています。
脱ブタン塔や排煙脱硝装置を例に取り上げられておりイメージしやすくなっています。

化学のためのPythonによるデータ解析・機械学習入門
化学のためのPythonによるデータ解析・機械学習入門

www.amazon.co.jp

・Pythonによる時系列分析: 予測モデル構築と企業事例

プロセス製造において時系列データの分析は欠かせません。
どのように時系列予測モデルを構築し、ビジネスへ活用していくかを詳細なPythonコードとともに解説してくれます。

Pythonによる時系列分析: 予測モデル構築と企業事例
Pythonによる時系列分析: 予測モデル構築と企業事例

www.amazon.co.jp

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

-業務効率化

//