hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
MIT License
27.21k stars 2.73k forks source link

给pdf转文字 提供一小段参考 #218

Closed xixuangezu closed 8 months ago

xixuangezu commented 1 year ago

pdf转文应该是比较常用的功能吧,支持大佬早点整合进来

import PyPDF2
import pytesseract
from PIL import Image

# 读取pdf文件
pdf_file = open('test.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 遍历每一页
for page_num in range(pdf_reader.numPages):
    pdf_page = pdf_reader.getPage(page_num)
    xObject = pdf_page['/Resources']['/XObject'].getObject()

    # 遍历每个对象
    for obj in xObject:
        if xObject[obj]['/Subtype'] == '/Image':

            # 获取图片
            size = (xObject[obj]['/Width'], xObject[obj]['/Height'])
            data = xObject[obj].getData()

            # 保存图片
            image = Image.frombytes("RGB", size, data)
            image.save("temp.jpg")

            # 识别文本
            text = pytesseract.image_to_string(image, lang='eng')

            # 写入txt文本中
            with open("output.txt", "a") as text_file:
                text_file.write(text + "\n")
pdf_file.close()
hiroi-sora commented 1 year ago

感谢建议。处理过程本身确实不难,主要是前端和任务队列写起来麻烦,所以一直懒得写😂

嗯,接下来我会看看怎么写的。

Delete-S commented 1 year ago

@hiroi-sora
chatgpt 应该能帮上忙~

hiroi-sora commented 1 year ago

chatgpt 应该能帮上忙

哈哈哈哈,那是当然滴。我是gpt高强度用户

hiroi-sora commented 1 year ago

按照计划,我准备在11月中下旬发布2.0.0正式版。目前注重于观察和修复现有功能的稳定性,和完善文档。暂时不会添加新的大型功能。

关于PDF识别,我已经完成了技术验证,它将是2.0后第一个版本的主要工作目标。如果顺利,将在12月发布。

预计Umi-OCR将能批量处理多本PDF或快速预览单个页面。允许使用忽略区域排除水印、合并段落优化排版。将推出一个新的段落排版器,专门针对左右双栏布局的论文类PDF进行优化。

对于远期,考虑添加 P2T 作为插件,以提供离线的数学公式识别能力。

同样远期,考虑添加 LibreTranslate 作为插件,以提供离线的翻译能力。

hiroi-sora commented 9 months ago

v2.1.0 测试版 已支持PDF识别。

https://github.com/hiroi-sora/Umi-OCR/releases