• 通过PaddleOCR识别PDF


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

    1.准备好python环境

    2.准备好依赖库

    1. # 安装依赖库
    2. # pywt可能要重启内核
    3. pip install pywt -i https://mirror.baidu.com/pypi/simple
    4. pip install "paddleocr>=2.2" --no-deps -r requirements.txt
    5. # 安装依赖库
    6. pip install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl
    7. pip install PyMuPDF==1.20.2
    8. pip install Flask (web才需要用到)
    9. pip install paddleocr==2.6.0.1
    10. 版本号这里安装了指定的版本,是因为前面因为几个版本的问题导致了不少坑

    最后py附上代码

    1. # -*- coding=utf-8 -*-
    2. from flask import Flask, jsonify
    3. from flask import request
    4. import fitz
    5. from paddleocr import PaddleOCR
    6. import time
    7. app = Flask(__name__)
    8. ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)
    9. @app.route("/resume", methods=['POST'])
    10. def convertText():
    11. start_time = time.time()
    12. # function() 运行的程序
    13. file = request.files.get('file')
    14. result = []
    15. pdfdoc = fitz.open("pdf",file.read())
    16. for pg in range(pdfdoc.page_count):
    17. page = pdfdoc[pg]
    18. rotate = int(0)
    19. # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
    20. zoom_x = 2.0
    21. zoom_y = 2.0
    22. trans = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
    23. pm = page.get_pixmap(matrix=trans, alpha=False)
    24. pm._writeIMG('temp.jpg', 1)
    25. # ocr识别
    26. list = ocr.ocr('temp.jpg', cls=True)
    27. result.append(list)
    28. end_time = time.time() # 程序结束时间
    29. run_time = end_time - start_time # 程序的运行时间,单位为秒
    30. print(run_time)
    31. return jsonify({"data": result})
    32. if __name__ == "__main__":
    33. app.config['JSON_AS_ASCII'] = False
    34. app.run(host='0.0.0.0',port=8059)

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

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

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

  • 相关阅读:
    前端周刊第十六期
    【云原生之Docker实战】使用docker部署mkdocs项目文档工具
    【送面试题】构建高可用的秒杀系统:应对Redis集群崩溃的终极指南
    好物周刊#11:远程桌面软件
    这些好用的设计网站,你一定要收藏
    Linux挂载Windows端NFS服务(实现板端Linux与PC互传文件)
    react-navigation 6.x学习(2)
    1027. 最长等差数列
    Mybatis开启日志
    邮件钓鱼-邮件来源伪造-SPF绕过-setoolkit&&gohish&&swaks钓鱼
  • 原文地址:https://blog.csdn.net/qq_38623939/article/details/128000652