在上一篇文章《Python实现读取PDF文件案例》里提到PDF文件有两种,一种是文本格式PDF,一种是图片格式PDF,在上一篇的案例中已经实现了利用pdfminer类库对于文本格式的PDF文件读取内容,这个类库功能强大,支持多语言(中文,英文,日文等),但是这种方式对于图片格式的PDF文件就读取不了了。在文章,我提高对于图片格式的PDF文件(扫描件等),要使用tensorflow +OCR的技术来读取,这种技术并不是直接读取PDF文件,而是读取图片,这就要求把PDF文件按照页面拆分成不同的图片文件,然后利用OCR技术来读取图片上的文字内容。不得不说,这种tensorflow +OCR的技术实现并不容易,研究了几天了还是有一些技术问题没有搞定,不过PDF文件拆分成JPG文件的问题已经解决了,为OCR读取图片格式PDF文件扫清了障碍。
在本案例中,我利用的是两个类库,一个是PyPDF2用来操作PDF文件,而另一个则是PythonMagick用来将PDF页面转为JPG图片文件。
不说废话,直接上代码,在这个案例里写了两个Python程序,一个用来实现PDF到JPG文件的拆分转换,一个作为用户接口来调用第一个程序从而实现格式转换:
就用前几天创建的一个PDF文件作为例子来测试程序:
程序执行成功!生成了一个JPG文件:
程序运行的结果正是我想要的,在此基础上,就可以添加tensorflow +OCR读取图片上文字内容的程序,从而实现读取图片格式PDF文件的业务需要。
从软件开发角度而言,业务功能实现需要分解,只有做了工作分解(WBS – Work BreakdownStructure)才能找到最合适的技术解决方案,例如在本案例中,实现读取图片格式的PDF文件,就需要做工作分解,第一步将PDF文件按页拆分为一个个JPG图片文件,然后第二步写tensorflow +OCR程序来读取图片文件上的文字内容,第三部,将各个JPG图片文件OCR读取内容整合到一起,就是对于整个图片格式PDF文件内容读取的结果。这个案例如此,其他任何业务需求都是一样的。很多功能需要看起来非常复杂似乎根本实现不了,但是认真分解下去,就能找到一个最合适的技术解决方案。
在过去一段时间里,针对Python的不同技术点实现了一些案例分享,应该说,这些案例都有着非常多的应用场景和空间,而这些案例中用到的各个不同的技术点结合起来就搞定一些大的复杂的业务需求场景,为客户实现更大的业务价值,而这,也是我写这个公众号的一个初衷。学习,是一种习惯,在这个时代,必须要培养和强化这种不断学习新知识掌握新技能的习惯。
领取专属 10元无门槛券
私享最新 技术干货