PythonでPDFを画像に変更するOOPを作成しよう
スポンサーリンク

PythonでPDFを画像に変更するOOPを作成しよう

本コードはwindowsで動作することが前提となっています。

  1. poppler-0.68.0_x86 をインストールします
  2. popplerのフォルダをmain.pyと同じ階層に置きます
  3. main.pyと同じ階層に「pdf」と「img」というフォルダを作成します
  4. 「pdf」にpngファイルに変換したいファイルを格納します
  5. 「PDF2PNG.py」を作成し以下のコードを記述します
  6. main.pyで下記OOPを読み込み完了です。
# main.pyの中身
from PDF2PNG import PDFtoPNG

p2p = PDFtoPNG()
p2p.pdfToPng()
# PDF2PNG.pyの中身

import os
from pathlib import Path
from pdf2image import convert_from_path
from glob import glob


class PDFtoPNG:
    def __init__(self):
        # poppler/binを環境変数PATHに追加する
        self.poppler_dir = Path(__file__).parent.absolute() / "poppler/bin"
        os.environ["PATH"] += os.pathsep + str(self.poppler_dir)
        self.image_dir = Path("./img")
        # PDFファイルのパス
        self.pdf_list = glob('./pdf/*.pdf')

    # 画像ファイルを1ページずつ保存
    def pdfToPng(self):
        for num in range(len(self.pdf_list)):
            pdf_path = Path(f'{self.pdf_list[num]}')
            # PDF -> Image に変換(150dpi)
            pages = convert_from_path(str(pdf_path), 150)
            for i, page in enumerate(pages):
                file_name = Path(pdf_path).stem + "_{:02d}".format(i + 1) + ".png"
                image_path = self.image_dir / file_name
                # PNGで保存
                page.save(str(image_path), "PNG")

ぜひ参考にしてください!また!

Twitterでフォローしよう

おすすめの記事