Python 複数のPDFファイルの1ページ目のみを抽出して結合し1つのpdfを作成する「pypdf」

 本記事のプログラムを使えば、例えば、特許調査で大量のpdfがある場合に、抄録の1ページ目だけを取得してひとつのpdfファイルへ結合して書き出すことができます。これにより、大量のファイルを開けたり閉じたりする手間暇がなくなるため、特許調査が飛躍的に楽になります。

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

 過去の記事で紹介したPyPDF2は2022年末の3.0.1以降更新されておらず、開発はpypdfで継続されるようです(PyPIのPyPDF2のトップページを参照)。
そこで、pypdfを使います。インストールは次のようにpipでします。

pip install pypdf

■本プログラム

import glob
from pypdf import PdfReader, PdfWriter

# pdfファイルがあるパス
dir_path = './dir_pdf' 

# 保存するファイル名
save_file_name = 'patent' 

# pdfファイルをリストで取得する
file_path_list = glob.glob(f'{dir_path}/*.pdf')
print(len(file_path_list))
print(file_path_list)

# 作成するpdfファイルのオブジェクトを生成(インスタンス)
writer = PdfWriter()

# pdfファイルを順に読み込んで1頁目を取得してインスタンスに追記してゆく
for _file_path in file_path_list:
    reader = PdfReader(_file_path)
    page1 = reader.pages[0]
    writer.add_page(page1)

# 上記インスタンスをpdfファイルへ出力する
with open(f'{save_file_name}.pdf', 'wb') as f:
    writer.write(f)

以上

<広告>