通过PaddleOCR识别PDF

近期需要做个读取文档内容的功能,于是发现了好用的python东西,挺多坑的,做个记录

1.准备好python环境

2.准备好依赖库

# 安装依赖库
# pywt可能要重启内核
pip install pywt -i https://mirror.baidu.com/pypi/simple

pip install "paddleocr>=2.2" --no-deps -r requirements.txt
# 安装依赖库
pip install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl

pip install PyMuPDF==1.20.2

pip install Flask (web才需要用到)

pip install paddleocr==2.6.0.1

版本号这里安装了指定的版本,是因为前面因为几个版本的问题导致了不少坑

最后py附上代码

# -*- coding=utf-8 -*-
from flask import Flask, jsonify
from flask import request
import fitz
from paddleocr import PaddleOCR
import time
app = Flask(__name__)
ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)


@app.route("/resume", methods=['POST'])
def convertText():
    start_time = time.time()
    # function()   运行的程序
    file = request.files.get('file')
    result = []
    pdfdoc = fitz.open("pdf",file.read())
    for pg in range(pdfdoc.page_count):
        page = pdfdoc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
        zoom_x = 2.0
        zoom_y = 2.0
        trans = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
        pm = page.get_pixmap(matrix=trans, alpha=False)
        pm._writeIMG('temp.jpg', 1)

        # ocr识别
        list = ocr.ocr('temp.jpg', cls=True)
        result.append(list)
        end_time = time.time()  # 程序结束时间
        run_time = end_time - start_time  # 程序的运行时间,单位为秒
        print(run_time)
    return jsonify({"data": result})


if __name__ == "__main__":
    app.config['JSON_AS_ASCII'] = False
    app.run(host='0.0.0.0',port=8059)

1.这里用了Flask作为搭建web基础,快速搭建

指定的config是因为编码问题,转为JSON的时候会乱码,需要指定不启用ASCII编码

还有host需要指定0.0.0.0,若不指定,则无法在局域网访问

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值