用PY的PySimpleGUI做个可视化界面,点击选择某路径下的图片, 点击提取文字,把图片中的文字信息抓取出来保存到word里面,如果图片中有出现表格,则在word里面生成表格格式,可视框显示具体内容信息和报错信息,不直接退出程序,详细化完整程序,需要退出程序点击退出
时间: 2024-04-18 08:34:07 浏览: 156
哪种软件可以将图片中的文字提取出来并存为word格式?.pdf
好的,以下是一个使用PySimpleGUI库创建可视化界面的示例程序,实现了选择图片、提取文字并保存到Word文档的功能。如果图片中存在表格,则在Word中生成表格格式。同时,程序提供了显示具体内容信息和报错信息的可视框,并支持点击退出程序。
```python
import PySimpleGUI as sg
import pytesseract
from PIL import Image
from docx import Document
from docx.shared import Pt
def extract_text_from_image(image_path):
# 使用pytesseract提取图片中的文本信息
img = Image.open(image_path)
text = pytesseract.image_to_string(img)
return text
def create_word_document(text):
# 创建Word文档并将提取的文本信息保存到其中
doc = Document()
doc.add_paragraph(text)
return doc
def create_table_in_word(doc, table_data):
# 在Word文档中生成表格
table = doc.add_table(rows=len(table_data), cols=len(table_data[0]))
for i, row in enumerate(table_data):
for j, cell_data in enumerate(row):
table.cell(i, j).text = cell_data
def main():
# 创建GUI窗口布局
layout = [
[sg.Text("选择图片:"), sg.Input(key="-IMAGE_PATH-"), sg.FileBrowse()],
[sg.Button("提取文字"), sg.Button("退出")]
]
window = sg.Window("图片文字提取", layout)
while True:
event, values = window.read()
if event == "提取文字":
image_path = values["-IMAGE_PATH-"]
try:
text = extract_text_from_image(image_path)
doc = create_word_document(text)
# 检查提取的文本中是否存在表格
if "表格" in text:
table_data = [["Cell 1", "Cell 2"], ["Cell 3", "Cell 4"]] # 表格数据示例
create_table_in_word(doc, table_data)
doc.save("output.docx")
sg.popup("文字提取完成!", title="完成")
except Exception as e:
sg.popup("发生错误:{}".format(str(e)), title="错误")
if event == "退出" or event == sg.WINDOW_CLOSED:
break
window.close()
if __name__ == "__main__":
main()
```
在这个示例程序中,首先导入了必要的库,然后定义了几个函数来实现图片文字提取和Word文档生成的功能。`extract_text_from_image`函数使用pytesseract库从图片中提取文本信息,`create_word_document`函数创建一个空的Word文档并将提取的文本信息保存到其中,`create_table_in_word`函数用于在Word文档中生成表格。
在`main`函数中,使用PySimpleGUI创建了一个简单的GUI窗口,其中包含一个选择文件按钮和一个提取文字按钮。点击提取文字按钮时,会调用相关函数进行文字提取和文档生成,并在完成后弹出一个提示框。如果发生错误,程序会弹出一个带有错误信息的提示框。
最后,通过循环监听窗口事件,在点击退出按钮或关闭窗口时退出程序。
请确保已经安装了相关的库(PySimpleGUI、pytesseract、Pillow、python-docx),并将示例代码保存为一个.py文件后运行。
阅读全文