🌟

PythonでPDFファイルを画像に変換する方法

2023/08/12に公開

PythonでPDFファイルを画像に変換する方法

PDFファイルを画像ファイルに変換することは、文書を共有する際やウェブ上で表示する際に便利な手法です。Pythonのpdf2imageモジュールを使用して、PDFファイルを画像に変換する方法を解説します。さらに、変換時に使用するツールpopplerを環境変数に追加する手順も詳しく説明します。

コードの意味と使い方

以下のコードは、PDFファイルを画像に変換する方法を示しています。

import os
from pathlib import Path
from pdf2image import convert_from_path

# poppler/binを環境変数PATHに追加する
poppler_dir = Path(__file__).parent.absolute() / "poppler/Library/bin"
os.environ["PATH"] += os.pathsep + str(poppler_dir)

pdf_path = Path("./folder/test.pdf")
image_dir = Path("./folder")

# PDFファイルを画像に変換
pages = convert_from_path(pdf_path, dpi=150)
if len(pages) > 1:
    for i, page in enumerate(pages):
        file_name = pdf_path.stem + "_{:02d}".format(i + 1) + ".jpeg"
        image_path = image_dir / file_name
        # JPEGで保存
        page.save(str(image_path), "JPEG")
else:
    file_name = pdf_path.stem + ".jpeg"
    image_path = image_dir / file_name
    # JPEGで保存
    pages[0].save(str(image_path), "JPEG")

コードの詳細解説

  1. pdf2imageモジュールを使用して、PDFファイルを画像に変換する方法を示します。

  2. poppler/binへのパスをpoppler_dir変数に設定します。これにより、popplerツールのバイナリが環境変数PATHに追加されます。popplerはPDFファイルを画像に変換するためのツールセットです。

  3. 変換対象のPDFファイルのパスをpdf_path変数に設定します。

  4. 画像を保存するディレクトリのパスをimage_dir変数に設定します。

  5. convert_from_path()関数を使用して、指定したPDFファイルを画像に変換します。dpi引数で解像度を設定できます。

  6. 変換された画像が複数ページある場合、各ページをループで処理し、ファイル名を設定して保存します。ページ番号を含めたファイル名を作成し、JPEG形式で保存します。

  7. 変換された画像が1ページしかない場合、ファイル名を設定してJPEG形式で保存します。

まとめ

Pythonのpdf2imageモジュールを使用して、PDFファイルを画像に変換する方法を解説しました。PDFファイル内の各ページを画像として抽出し、JPEG形式で保存する手法です。また、変換時に必要なツールであるpopplerの設定も詳しく説明しました。ぜひこれらの手法を活用して、PDFファイルを画像として効率的に利用してみてください!

pdf2imageモジュールの公式ドキュメント:
https://github.com/Belval/pdf2image

Discussion