PythonでPDFの指定範囲(座標)から文字抽出をする方法をご紹介します。
ぜひ、お試しください。
pythonでPDFから文字抽出
以下のコードを実行すると、PDFを範囲指定して文字認識をします。
import pyautogui as pag
import pyocr
from PIL import Image
import sys
import subprocess
import pyperclip
import os
import time
acr_path = 'C:/Program Files (x86)/Adobe/Acrobat Reader DC/Reader/AcroRd32.exe'
#PDF指定
pdf_path = 'C:/Users/admin/Desktop/test/PDFファイル/'
pdf_list = os.listdir(pdf_path)
i = 1
#OCRを動かして、テキストデータに変換(スペース削除)
def run_ocr(tool,name_img):
result = tool.image_to_string(name_img,lang='jpn')
result = result.replace(' ','')
print(result)
return result
if __name__=='__main__':
#OCR呼び出し
tools = pyocr.get_available_tools()
tool = tools[0]
#フォルダ内にあるPDFファイルをループ
for idx,file in enumerate(pdf_list):
#PDFファイルを開く
pdf_pro = subprocess.Popen([acr_path,pdf_path+file],shell=False)
time.sleep(2)
#座標指定箇所を切り取りして画像保存
name_img = pag.screenshot(str(i) + 'temp.png',region=(519, 230, 150, 45))
#指定座標を文字起こししてテキスト変換
result =run_ocr(tool,name_img)
i = i + 1
pdf_pro.kill()
time.sleep(1)
コード実行前
[pdf_path] フォルダ内には、複数のPDFファイルが存在しています。
PDFは全て同じフォーマットです。
PDFファイルからOCRで文字抽出をする座標を指定して、
[region=(519, 230, 150, 45)] へ入力します。
コード実行後
[pdf_path] 内をループし、
1つずつPDFファイルを開いて指定座標の文字をテキストに変換します。
指定座標の中に文字が入り切っていない場合、
抽出した文字が一部文字化けするようです。
※PDFからの文字抽出の精度は100%ではありませんので、
あらかじめご了承いただけますと幸いです。

【Python】PDFを座標指定して画像保存する:一括自動処理
...
「Python2年生 スクレイピングのしくみ」
機械学習を始めたい方必見
必要最低限の文法をピックアップして解説
ネットからデータ収集を始めたい方へオススメの1冊です!
リンク