【Python】複数のPDFから任意の1ページをJPGに一括変換するコード【Windows】

本ブログはアフィリエイト広告を利用しています

WEB / アプリ
WEB / アプリ
この記事は約4分で読めます。

とっちゃん@nyanco! です。

今回はWindowsの指定したディレクトリ内にあるPDFファイルの任意の1ページをJPGデータに一括変換するPythonコードの共有です。

肉玉にゃんこ

抽出するページは任意に変更できますにゃ~!

スポンサーリンク

コードの動作環境

  • OS:Windows10 ※macOSでは未確認
  • Pythonバージョン:3.11.2
  • 必要ライブラリ:os fitz

コード作成のきっかけ

とある業務で、複数のPDFの1ページ目を抜きだして画像ファイルにする必要に迫られたのがきっかけです。

対象となるPDFファイルの数は手動でもやろうと思えばできるレベルだったのですが、これはpythonが得意そうな作業かなと思いChatGPTにサクッと作成してもらいました。

肉玉にゃんこ

幾度かのやり取りでほんとにサクッとできましたにゃ〜

フォルダ内のPDFの1ページ目をJPGに一括変換するコード

早速ですがコードはこちら!

import fitz  # PyMuPDFライブラリをインポート
import os

# フォルダのパスを指定
import fitz
import os

# フォルダのパスを指定
folder_path = 'ファイルパス' # 例:'C:/Users/【ユーザー名】/Desktop/input'

# フォルダ内のPDFファイルを処理
for filename in os.listdir(folder_path):
    if filename.endswith('.pdf'):
        pdf_file_path = os.path.join(folder_path, filename)

        # PDFファイルを開いて、指定したページをJPGに書き出す
        pdf_document = fitz.open(pdf_file_path)
        target_page = 0  # ページを指定(ページ番号は[0]からなので[0]が[1]ページ、[1]が[2]ページとなります)
        if target_page > pdf_document.page_count - 1:
            target_page = pdf_document.page_count - 1  # 無効なページ番号を防ぐ
        page = pdf_document.load_page(target_page)
        image = page.get_pixmap()
        
        # 出力ファイル名を一意に生成
        file_name, file_ext = os.path.splitext(filename)
        output_image_path = os.path.join(folder_path, f'{file_name}_page{target_page + 1}.jpg')  # ページ番号は[0]から始まるため+1する

        # JPGファイルとして保存
        image.save(output_image_path, 'jpeg')

        # PDFドキュメントを閉じる
        pdf_document.close()

        print(f'{pdf_file_path} の{target_page + 1}ページ目を {output_image_path} に書き出しました')

コードはChatGPTで作成したものを少しカスタマイズしています。

9行目のfolder_pathの”ファイルパス”に、対象のPDFがあるファイルパスをコピーペーストして使ってください。

サブフォルダ(フォルダ内のフォルダ)のPDFは処理対象外となります。

また、画像として抽出したいページを変更したい場合18行目のtarget_pageの数値を変更することでカスタマイズできます。

一点注意なのは、プログラムは [0] から数えるという特性から実際のページ数から-1した数値で指定する必要がある点です。

肉玉にゃんこ

デフォルトは 0 なので 1ページ目が抽出されるということですにゃ~
10ページ目を抽出したい場合は 9 を指定する感じですにゃ~

▼サクッとすぐに使えるように下記より.pyファイルのダウンロードも可能です(zip圧縮しています)。

→フォルダ内のPDFの1ページ目をJPGに一括変換するPythonコードをダウンロード

おわりに

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント