Pythonにて、pdf2image及びpopplerを利用して、PDFファイルをページごとにPNG画像に変換するコードを作成しております。同じフォルダ内にPopplerのダウンロードファイル(binやshareなどが入っているファイル)を入れております。
poppler/binのファイルパスは以下。
C:\Users\81808\workspace\lec_rpa\notouch_file\poppler\bin
Pythonコードはlec_rap内にあり、パスは以下
C:\Users\81808\workspace\lec_rpa
以下のコードを実行して、lec_rpa/todokede_dataにあるbid.pdfという2ページ構成のpdfをそれぞれ
1ページずつPNG画像にして、lec_rpa内にある、./pdf_imageに保存するコードです。
import os from pdf2image import convert_from_path from pathlib import Path poppler_dir = Path(__file__).parent.absolute() / "notouch_file/poppler/bin" os.environ["PATH"] += os.pathsep + str(poppler_dir) # PDFファイルのパス pdf_path = Path("./todokede_data/bid.pdf") # PDF -> Image に変換(150dpi) pages = convert_from_path(str(pdf_path), 200) image_dir = Path("./pdf_image") for i, page in enumerate(pages): file_name = pdf_path.stem + "_{:02d}".format(i + 1) + ".png" image_path = image_dir / file_name # PNGで保存 page.save(str(image_path), "PNG")
ちなみにtodokede_dataとpdf_imageのパスは以下です。
todokede_data:C:\Users\81808\workspace\lec_rpa\todokede_data
pdf_image:C:\Users\81808\workspace\lec_rpa\pdf_image
これをVScodeで実行するとうまくいくのですが、Pyinstallerで--onefileにてexe化すると、
以下のエラーが出てしまい、実行されません。
Traceback (most recent call last): File "pdf2image\pdf2image.py", line 458, in pdfinfo_from_path File "subprocess.py", line 966, in __init__ File "subprocess.py", line 1435, in _execute_child FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "test2.py", line 13, in <module> File "pdf2image\pdf2image.py", line 98, in convert_from_path File "pdf2image\pdf2image.py", line 484, in pdfinfo_from_path pdf2image.exceptions.PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH? [6316] Failed to execute script 'test2' due to unhandled exception!
いったいどうすれば実行できますでしょうか。
詳しい方教えていただけると幸いです。。
あなたの回答
tips
プレビュー