本サイトは広告・プロモーションが含まれています
Python

【Python】PDFページの分割【簡単コード】

本記事では、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度になりそうで、猛暑といくより酷暑みないになっております。
皆様も酷暑にはお気をつけください。


それでは。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA