PythonでPDFを画像に変更するOOPを作成しよう
本コードはwindowsで動作することが前提となっています。
- poppler-0.68.0_x86 をインストールします
- popplerのフォルダをmain.pyと同じ階層に置きます
- main.pyと同じ階層に「pdf」と「img」というフォルダを作成します
- 「pdf」にpngファイルに変換したいファイルを格納します
- 「PDF2PNG.py」を作成し以下のコードを記述します
- 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")
ぜひ参考にしてください!また!