複数ページのPDFファイルを分割していくつかのファイルに分けたいような要望はかなり頻繁に発生します。
今回は、PythonのPdfWriterを使ってPDFファイルを簡単に分割する方法を紹介します。
必要なライブラリのインストール
まず、PyPDF2ライブラリをインストールします。このライブラリはPDFの読み書きやマージに役立ちます。
コマンドプロンプトにて以下を実行します。
pip install pypdf2
簡単なマージ例
簡単なマージ例として、実行するPythonファイルと同じフォルダ内にPDFファイルを入れておいてフォルダ内にある全PDFファイルの中でページ数が4のファイルだけを分割するような場合のコードは以下のようになります。
import PyPDF2
import glob
from pypdf import PdfWriter
merger = PdfWriter()
for pdf in glob.glob('*.pdf'):
# f = 'merged2.pdf' #分割したいPDF
page_sep = 2 #何ページごとに分割したいか
#pdfのページ数を把握する
reader = PyPDF2.PdfReader(pdf)
page_num = len(reader.pages)
# 4ページのファイルだけ実行
if page_num == 4:
#ページの抽出とファイル名に使う数字を派生させforで回す
for page in range(0, page_num, page_sep):
merger = PyPDF2.PdfMerger()
start = page
end = start + page_sep
merger.append(pdf, pages=(start,end))
file_name = str(start) + '.pdf'
merger.write(file_name)
merger.close
5行目のfor文で同じフォルダ内のすべてのPDFファイルを洗い出しています。
分割数を2として、ページ数が4のファイルだけを抜き出して分割しています。
分割した先頭ページ番号をファイル名としていますので、たとえば、0,1ページ目のファイルには「0.pdf」というファイル名がついて保存されます。
以上が、PythonでdfWriterを使ってPDFファイルをマージする方法になります。