本記事では、Pythonを使用して複数ページのPDFを1ページずつ分解する方法をご紹介します。
分解にはPyPDF2というライブラリを使用し、わずかなコードで実現することができます。
これは私の体験談なのですが
DX、ペーパーレスが求められている職場でも、PDFを簡単に分割するツールは求められます。
ぜひご活用ください。
プログラムの作成
PyPDF2のインストール
まず、PyPDF2をインストールします。ターミナルまたはコマンドプロンプトで次のコマンドを実行してください。
pip install PyPDF2
コード
分解したいpdfと同じディレクトリ(フォルダ)に以下のコードが書かれたmain.pyをおきます。
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
def split_pdf(input_path, output_dir):
# 出力ディレクトリが存在しない場合は作成する
os.makedirs(output_dir, exist_ok=True)
# 入力PDFを読み込む
with open(input_path, 'rb') as file:
pdf = PdfFileReader(file)
# 各ページを分解する
for page_number in range(pdf.getNumPages()):
# ページを取得
page = pdf.getPage(page_number)
# 出力ファイル名を作成
output_filename = f"page_{page_number + 1}.pdf"
output_path = os.path.join(output_dir, output_filename)
# 出力ファイルにページを書き込む
with open(output_path, 'wb') as output_file:
writer = PdfFileWriter()
writer.addPage(page)
writer.write(output_file)
print(f"分解完了: {output_path}")
# 使用例
input_pdf = 'sample.pdf' # 入力PDFファイルパス
output_directory = 'output' # 出力ディレクトリパス
split_pdf(input_pdf, output_directory)
上記のスクリプトでは、split_pdf
関数を定義しています。この関数に入力PDFのファイルパスと出力ディレクトリのパスを渡すと、各ページが個別のPDFファイルとして出力されます。
コードの実行
コマンドプロンプトで、main.pyと同じディレクトリで
python main.py
を実行すると、outputフォルダの中に、分割されたPDFが保存されていきます。
注意:入力PDFファイルのパスと出力ディレクトリのパスを適切な値に変更してください。
上記のスクリプトでは最後から2~3行目で
分割するpdf:sample.pdf
分割先のフォルダ:output
とするように書いています。
使用する時は、皆様が使用するケースにあったファイル名・フォルダ名を書いてご使用ください。
おわりに
社会人プログラマーとして働いていると
意外と簡単な処理を頼まれることが、多々あります。
PDFの処理もその一つで、不必要なページを消したいときなどよく頼まれます。
以下には、上記のコードを少し応用した
PDFを分割するデスクトップアプリケーションを紹介しております。
社内・仲間内にひろめる場合はぜひ参考にしてみてください。
ここまで読んでいただき、ありがとうございました。
私の住んでいる地域は39度になりそうで、猛暑といくより酷暑みないになっております。
皆様も酷暑にはお気をつけください。
それでは。