python - 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
但我不知道如何让它从左到右逐行读取。任何帮助表示赞赏。
解决方案
推荐阅读
- python - 使用 tkinter 调用计算机摄像头并收到错误:无效的命令名称“.!toplevel.!canvas”
- vue.js - 观察者回调错误“function () { return this._data.$$state }”
- python - 计算熊猫数据框中的左括号
- r - 使用自定义函数命名由`nest`(tidyr)创建的列表中的项目
- airflow - 将文件标记到 Airflow,使其不会尝试将它们作为 DAG 导入
- xml - 在 Perl 中使用 XML::Simple 将哈希转换为 XML 后内容丢失
- sql - 视图的每一列的定义
- node.js - 如何从用户名中获取用户?
- c - C API 中的 Z3 获取值
- django - Django Serializer 中的数据验证错误