PythonでPDFを画像に変更するOOPを作成しよう
本コードはwindowsとMACに対応しているはずですが、Windowsでのみ動作検証を行っています。
- tesseractをインストールします。 MAC:brew install tesseractでtesseractをDL、WIN:tesseract-ocr-w64-setup-v5.2.0.20220712.exeをインストール
- インストール時に日本語化ツールをインストールすることを忘れないこと *参照:https://gammasoft.jp/blog/tesseract-ocr-install-on-windows/
- main.pyと同じ階層に「img」フォルダを作成します。
- 文字抽出をしたいpngファイルをimgフォルダに格納します
- 以下のコードを実行します
# main.pyの中身
from PNG2TXT import PNGtoTXT
p2t = PNGtoTXT()
p2t.PNGtoTXT()
# PNG2TXT.pyの中身
# import Pillowで解決
from PIL import Image
# MAC:brew install tesseractでtesseractをDL
# WIN:tesseract-ocr-w64-setup-v5.2.0.20220712.exeをインストール
# インストール時に日本語化ツールをインストールすることを忘れないこと
# 参照:https://gammasoft.jp/blog/tesseract-ocr-install-on-windows/
import pyocr
import pyocr.builders
from glob import glob
class PNGtoTXT:
def __init__(self):
self.img_list = glob('./img/*png')
self.len_img = len(self.img_list)
self.curr_img_num = 0
try:
pyocr.tesseract.TESSERACT_CMD = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
except:
pass
def PNGtoTXT(self):
output = ""
for n in range(self.len_img):
img = Image.open(self.img_list[self.curr_img_num])
tools = pyocr.get_available_tools()
tool = tools[0]
text = tool.image_to_string(
img,
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=4)
)
output += f"{text}\n\n"
with open("output.txt", encoding="utf-8_sig", mode="w") as file:
file.write(output)
ぜひ参考にしてください!また!