首页 > 解决方案 > Python OCR逐行读取PDF文件?

问题描述

我正在使用 PDFPlumber 逐行阅读此文档并从中提取文本。它工作得很好,但是向我们发送这些文件的公司已经开始对它们进行编码,现在我得到的只是随机字符。我已经尝试了很多方法来修复它,而我唯一想到的就是使用 OCR。我现在正在使用这段代码,它正在读取大部分数据,但不是全部。

我试图阅读的 PDF 文件看起来像这样。

在此处输入图像描述

我使用的 OCR 代码是我在网上找到的模板。出于某种原因,它不会读取第一行,并且页面之间的顺序不同,即使每个页面看起来都相似。

from PIL import Image
import pytesseract
import sys
from pdf2image import convert_from_path
import os

PDF_file = "1.pdf"

pages = convert_from_path(PDF_file, 500)

image_counter = 1

for page in pages:
    filename = "page_" + str(image_counter) + ".jpg"
    page.save(filename, 'JPEG')
    image_counter = image_counter + 1

filelimit = image_counter - 1

outfile = "out_text.txt"

f = open(outfile, "a")

for i in range(1, filelimit + 1):
    filename = "page_" + str(i) + ".jpg"
    text = str(((pytesseract.image_to_string(Image.open(filename)))))
    text = text.replace('-\n', '')
    f.write(text)
    
f.close()

我需要的是能够从前 3 列中获取信息,然后是从第二列到最后两列。例如,在上图中,我需要:3, 1087-1713, 538-00165, $89.68, $40.36

但我不知道如何让它从左到右逐行读取。任何帮助表示赞赏。

标签: pythonpdfocrtesseractpython-tesseract

解决方案


推荐阅读