首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python实现读取PDF文件案例

最近有一个本地客户需求是读取PDF文件,然后做自动化处理。这其实是一种典型的RPA自动化需求,简单而言就是模拟人工来操作文件,网页,客户端系统等,只要操作规则定义清楚,就可以实施这种RPA应用,而如果这种操作较为频繁(大量重复),则这种RPA自动化应用实施的ROI(投资回报率)会非常显著。

事实上利用RPA软件可以较为容易地实现这类操作,例如AutomationAnywhere,参考此前我写的一篇文章《RPA软件之AutomationAnywhere研究》,在AA里就有这类操作PDF文件的标准控件和应用场景:

(二十八)PDFIntegration(PDF文件操作)

PDF To Image

Extract From Fields

Extract Text

Merge Documents

Split Document

Encrypt Document

Decrypt Document

而现在这个本地客户需求相对简单,并且在未来有进一步和其他应用集成的可能性,也就是开发一个端到端的自动化应用,因此用AA来实现这个功能就有点大材小用了,而用Python写一个自开发的RPA应用就可以支持这个功能,而在Python来操作PDF文件有多种类库,分别研究了一下,发现对于英文PDF文件支持最好的是pyPDF2类库,而对于多语言PDF文件支持最好的则是本文这个案例种用到的pdfminer类库,这两个类库的使用方法其实都很简单。

不说废话,直接上代码:

准备了一个简单的PDF文件做测试:

执行程序,结果如下:

当然了,不管是pyPDF2类库(只支持英文PDF文件),还是pdfminer类库(支持多语言PDF文件),都有一个最大的局限性,那就是只能用来读取电脑生成的PDF文件的内容,而不能用来处理扫描件PDF,对于手写字也不能支持,要读取这类PDF扫描件就要用到另外一种技术,那就是——OCR。在后面我会专门写一篇文章来介绍一个如何利用tensorflow来实现OCR读取PDF扫描件的案例。

RPA应用实施有两个阶段,第一个阶段是传统RPA(Tranditional RPA),而第二阶段是认知RPA(Cognitive RPA),认知RPA比传统RPA更高级的一点就是引入了AI认知服务,使原来无法操作的非结构化数据可以被操作,例如OCR,人脸识别,声音识别等等。传统RPA则是基于对结构化数据的操作,包括excel文件,网页数据等。当然了,对于电脑生成的PDF文件的读取和自动化操作,还可以算作是传统RPA实施的领域,而对于PDF扫描件的读取和自动化操作,则毫无疑问地可以归于认知RPA的范围了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180502G01W4G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券