pythonocr识别中⽂pdf_基于Python实现对PDF⽂件的OCR识
别
⼤家可能听说过使⽤Python进⾏OCR识别操作。在Python中,最出名的库便是Google所资助的tesseract。利⽤tesseract可以很轻松地对图像进⾏识别。现在问题来了,如果想对⼀个PDF⽂档进⾏OCR识别,该怎么做呢?下⾯⼀起来看看。
最近在做⼀个项⽬的时候,需要将PDF⽂件作为输⼊,从中输出⽂本,然后将⽂本存⼊数据库中。为此,我寻了很久的解决⽅案,最终才确定使⽤tesseract。所以不要浪费时间了,我们开始吧。
1.安装tesseract
在不同的系统中安装tesseract⾮常容易。为了简便,我们以Ubuntu为例。
transaction date在Ubuntu中你仅仅需要运⾏以下命令:
这将会安装⽀持3种不同语⾔的tesseract。
2.安装PyOCR
现在我们还需要安装tesseract的Python接⼝。幸运的是,有许多出⾊的Python接⼝。
我们采⽤最新的⼀个:
3.安装Wand和PIL
在我们开始之前,还需要另外安装两个依赖包。⼀个是Wand。它是Imagemagick的Python接⼝。
我们需要使⽤它来将PDF⽂件转换成图像:
round函数怎么用于计算公式我们也需要PIL因为PyOCR需要使⽤它。你可以查看官⽅⽂档以确定如何将PIL安装到你的操作系统中。
4.热⾝
让我们开始我们的脚本吧。⾸先,我们需要导⼊⼀些重要的库:360建站模板
注意:我将从PIL导⼊的Image模块改名为PI了,因为如果不这样做的话,它将和wand.image模块发⽣重名冲突。
5.开始
现在我们需要获得OCR库(在本例中,即tesseract)的句柄以及我们在PyOCR中将使⽤的语⾔:
我们使⽤_available_languages⾥的第⼆种语⾔,因为之前我曾尝试过,第⼆种语⾔就是英语。
接着,我们需要建⽴两个列表,⽤于存储我们的图像和最终的⽂本。
下⼀步,我们需要采⽤wand将⼀个PDF⽂件转成jpeg⽂件。让我们试⼀试吧!
注意:将PDF_FILE_NAME替换成当前路径下的⼀个可⽤的PDF⽂件名。
wand已经将PDF中所有的独⽴页⾯都转成了独⽴的⼆进制图像对象。我们可以遍历这个⼤对象,并把它们加⼊到req_image序列中去。
现在,我们仅仅需要在图像对象上运⾏OCR即可,⾮常简单:
现在,所有识别出的⽂本已经加到了final_text序列中了。你可以任意地使⽤它。以上就是利⽤Python对PDF⽂件做OCR识别的全部内容,希望这个教程能够帮助到你们!
基于DevExpress实现对PDF、Word、Excel⽂档的预览及操作处理
Python实现对CSV⽂件的读写功能
我们要处理csv⽂件,⾸先要的导⼊csv模块 import csv #读取csv⽂件def readCsv(path): #传⼊变量csv⽂件的路径 list=[] #定义⼀个空列表 with ope ...
【JAVA使⽤XPath、DOM4J解析XML⽂件,实现对XML⽂件的CRUD操作】
⼀.简介 1.使⽤XPath可以快速精确定位指定的节点,以实现对XML⽂件的CRUD操作. 2.去⽹上下载⼀个“XPath帮助⽂档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
Java代码加密与反编译(⼆):⽤加密算法DES修改classLoader实现对.class⽂件加密
Java代码加密与反编译(⼆):⽤加密算法DES修改classLoader实现对.class⽂件加密 ⼆.利⽤加密算法DES实现java代码加密 传统的
C/C++⾃动带有保护机制,但java不同,只要 ...
JDOM⽅法实现对XML⽂件的解析
C#调⽤Python脚本打印pdf⽂件
介绍:通过pdf地址先将⽂件下载到本地,然后调⽤打印机打印,最后将下载的⽂件删除. 环境:windows系统.(windows64位) windows系统中安装python3.6.2环境 资料: O ...
Python数据⽣成pdf⽂件
使⽤Python批量合并PDF⽂件(带书签功能)数据库宿舍管理系统
⽹上了⼏个合并pdf的软件,发现不是很好⽤,⼀般都没有添加书签的功能. ⼜去了下python合并pdf的脚本,发现也没有添加书签的功能的. 于是⾃⼰动⼿编写了⼀个⼩⼯具,使⽤了PyPDF2. 下⾯ ...
IText实现对PDF⽂档属性的基本设置
⼀.Itext简介 iText是著名的开放源码的站点sourceforge⼀个项⽬,是⽤于⽣成PDF⽂档的⼀个java类库.通过iText不仅可以⽣成PDF或rtf 的⽂档,⽽且可以将XML.Html⽂ ...
jquery下载文件请求随机推荐
⽤JQuery动态为选中元素添加/删除类
在做⼀些tab页功能时,我们经常会见到如下样式: 即当选中⼀个元素时,在此元素下会添加相应的类,以⽰区别.今天就研究了⼀下如何⽤JQuery实现此效果. 1. HTML代码
2. Docker - 安装
西班牙对德国竞彩⼀.Docker介绍 1. Docker是⼀个开源的应⽤容器引擎,让开发者可以打包他们的应⽤以及依赖包到⼀个可移植的容器中,然后发布到任何流⾏的Linux机器上, 也可以实现虚拟化. 容器时完全使⽤沙 ...
MySQL Cluster 集
C++字符数字的编码(Encode)与解码(Decode)
在⽇常应⽤中,我们常⽤结构体或者类来存储⼀条信息,这种⽅式很⽅便,但是不利于数据的传输.例如在⽹络编程中,我们需要将结构中的数据转化为字节流才能进⾏传输,我们可以利⽤memcpy强⾏将结构化的数据转化 ...
HTTP缓存机制
缓存对于移动端是⾮常重要的存在. 减少请求次数,减⼩服务器压⼒. 本地数据读取速度更快,让页⾯不会空⽩⼏百毫秒. 在⽆⽹络的情况下提供数据. 缓存⼀般由服务器控制(通过某些⽅式可以本地控制缓存,⽐如向 ...
【转】免装版tomcat注册成windows系统服务⽅法
elasticSearch+spring 整合 maven依赖详解
Jquery 属性选择器&;设置元素属性
什么是属性选择器呢?感觉理解起来有点难,举个例⼦就很容易明⽩了,
Android开发实现计算器的例⼦例⼦ 代码如下 复制代码
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论