【Python】PDFから文字抽出(テキスト変換):OCR自動化処理

python-PDFから文字抽出OCR-アイキャッチ Python

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ファイルを開いて指定座標の文字をテキストに変換します。


 
指定座標の中に文字が入り切っていない場合、

抽出した文字が一部文字化けするようです。

参考になりましたら、幸いです。
 

【Python】PDFを座標指定して画像保存する:一括自動処理
...

 

「Python2年生 スクレイピングのしくみ」

機械学習を始めたい方必見
必要最低限の文法をピックアップして解説
ネットからデータ収集を始めたい方へオススメの1冊です!