Python 多语言ocr pdf提取

Python ocr pdf extraction with multiple languages

你好,我有一个包含 2 种语言(英语、希腊语)的 pdf 文件,我想通过 python ocr 提取它。到目前为止,我有这段代码,但它只适用于一种语言(希腊语)

如何运行在有2种语言的pdf文件中进行ocr提取?

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter
from pdfminer.layout import LAParams
from cStringIO import StringIO
from wand.image import Image
from PIL import Image as PI
import pyocr
import pyocr.builders
import io

def pdfparser(data):
 tool = pyocr.get_available_tools()[0]
 for i in enumerate(tool.get_available_languages()):
    print(i)
 lang = tool.get_available_languages()[2]
 req_image = []
 final_text = []
 words = []
 image_pdf = Image(filename=data, resolution=600)
 image_jpeg = image_pdf.convert('jpeg')
 for img in image_jpeg.sequence:
    img_page = Image(image=img)
    req_image.append(img_page.make_blob('jpeg'))
 for img in req_image: 
    txt = tool.image_to_string(
        PI.open(io.BytesIO(img)),
        lang=lang,
        builder=pyocr.builders.TextBuilder()
    )
    final_text.append(txt)
    #words.extend(u'{}'.format(txt.split()))
#print(final_text)
#print(words)

for x in final_text:
    '''
    for i in x:
        print(i.replace('|(',u'Κ').replace('|',u'Ι'))
    '''

    try:
        word = x.encode('utf8')
        print(word)

    except UnicodeEncodeError , e:
        print(e)
        continue

if __name__ == '__main__':
 pdfparser(sys.argv[1]) 

我在这里冒险回答。尝试 lang = 'eng+ell'。确保 eng.traineddataell.traineddata 文件都在 tessdata 文件夹中。

https://github.com/tesseract-ocr/tessdata