見出し画像

PythonでPDFを1ページずつ分割する方法(GoogleColab)

PDFを分割する手段は複数ありますが、面倒なことも多いです。今回はPython(GoogleColab)を使ってPDFファイルを1ページずつ分割していきます。

実装の目標

以下のようにsample.pdf(今回は5ページ)を1ページずつ分割することを目標とします。

コードの実装目標

コードの各部分の解説

①PDFを分割する関数の定義

def split_pdf(file_path):


split_pdfという名前の関数を定義します。
この関数は、PDFファイルのパス(file_path)を引数として受け取り、そのPDFファイルをページごとに分割する処理を行います。

②PDFファイルの読み込み

pdf = fitz.open(file_path)

fitz.openを使用して、指定されたパスにあるPDFファイルを開きます。このpdfオブジェクトを通じて、PDFの内容にアクセスし操作を行います。

③各ページの処理を行うループ

for page_number in range(len(pdf)):


PDFの各ページに対してループ処理を行います。
range(len(pdf))はPDFのページ数に基づいて範囲を生成し、各ページ番号(page_number)に対して処理を行います。

④個々のページの取得と出力ファイル名の設定

page = pdf[page_number]
output_filename = f"output_page_{page_number + 1}.pdf"

ループ内で、現在のページ(page)をPDFから取得し、それぞれのページを保存するための出力ファイル名(output_filename)を生成します。
ファイル名はoutput_page_X.pdfの形式で、Xはページ番号です。

⑤新しいPDFファイルの作成とページの追加

page_pdf = fitz.open()
page_pdf.insert_pdf(pdf, from_page=page_number, to_page=page_number)

新しいPDFファイル(page_pdf)を作成し、元のPDFから現在のページをこの新しいPDFに挿入します。
insert_pdfメソッドは、指定された範囲のページ(この場合は単一のページ)を別のPDFにコピーします。

⑥新しいPDFファイルの保存とクローズ

page_pdf.save(output_filename)
page_pdf.close()

新しく作成されたPDFファイルを指定されたファイル名で保存し、そのファイルを閉じます。
これにより、元のPDFの各ページが個別のファイルとして保存されます。

⑦元のPDFファイルのクローズ

pdf.close()

最後に、元のPDFファイルを閉じます。

⑧関数の使用例

split_pdf('sample.pdf')

実際に関数を使用する例です。この場合、'sample.pdf'というファイル名のPDFを分割します。実際の使用時には、ここに任意のPDFファイル名を指定します。


コード全体

ここまでをまとめるとコード全体は次のようになります。

ここから先は

804字

¥ 100

期間限定!PayPayで支払うと抽選でお得

この記事が気に入ったらチップで応援してみませんか?