c# string 转 datetime_tesseract || PDF转PNG转txt

08837cf0d89c16b723b8d991c901dcef.gif

d72c3e75b20c16e2edf5df2b8d4738dc.png由图片扫描生成的PDF文件无法复制粘贴文字,是不是很困扰?虽然有一些阅读器和在线工具可以解析图片中的文字,但毕竟只能线下处理,不能满足批量的系统线上功能。今天写一个PDF转图片、图片转txt的代码模块,你可以将它封装起来,实现线上识别pdf中的文字!01

关于tesseract:

(1)首先,pip install pytesseract;

(2)然后,需要下载 tesseract-ocr

下载网址:https://github.com/UB-Mannheim/tesseract/wiki选择自己的版本下载,下载之后直接安装即可。修改pytesseract.py 文件里面的指向路径为你的安装路径; ( 3)最后,将你的安装路径 .\Tesseract-OCR\tessdata 添加到环境变量中; e4d0e5119d7ea3ee35a5e4df00cbde85.png(4)其他还需要的安装包:fitz,PIL,可以直接通过pip或conda来安装,不赘述。(5)关于识别语言库的下载(原github失效中,但有热心网友提供了下载包,简体中文为chi_sim): https://blog.csdn.net/qq_38161040/article/details/9072745602

PDF转PNG图片:

import fitzimport pytesseractfrom PIL import Imageimport datetimedef pdf_image(pdfPath,imgPath,zoom_x,zoom_y,rotation_angle):    '''    将PDF转化为png    pdfPath:pdf文件的路径    imgPath:图像要保存的文件夹    zoom_x: x方向的缩放系数    zoom_y: y方向的缩放系数    rotation_angle: 旋转角度    '''    # 打开PDF文件    pdf = fitz.open(pdfPath)    # 逐页读取PDF    for pg in range(0, pdf.pageCount):        page = pdf[pg]        # 设置缩放和旋转系数        trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotation_angle)        pm = page.getPixmap(matrix=trans, alpha=False)        # 开始写图像        pm.writePNG(imgPath+str(pg)+".png")    pdf.close()
03

PNG转txt:

def main():    '''    png图片转为txt    '''    for i in range(8):#假如有8页图片,分别为0.png,1.png...        starttime = datetime.datetime.now()        image = Image.open(r"C:/Users/Lenovo/Desktop/"+str(i)+".png")        text = pytesseract.image_to_string(image, lang='chi_sim')  # 使用简体中文解析图片        endtime = datetime.datetime.now()        text=text.replace(" ","")        with open(r"C:/Users/Lenovo/Desktop/"+str(i)+".txt", "a") as f: # 将识别出来的文字存到本地            # print(text)            f.write(str(text))            if __name__ == "__main__":       pdf_image(path,r"C:/Users/Lenovo/Desktop/",5,5,0)   main()

注:将路径换为你的pdf路径和图片路径

04

查看效果:

pdf

5895a5ea2a1a9d9d9b0c9b488a4bee84.png

txt

99de4a6bcfb3d344c075f9eb601d4888.png

47d0fb73ce67d183471e45fa3e1cd1e9.gif

扫码关注

立出奇迹

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值