记一个提取pdf图片的小需求-文档/APP下载-AR眼镜圈
资讯中心
文档/APP下载

记一个提取pdf图片的小需求

作者:来源:访问:2447时间:2022-12-12

最近客户提了一个需求,就是将pdf文件中的发票图片提取出来,然后保存为发票图片并进行OCR识别。刚开始给的pdf文件很简单,就是每一页一张图片,报了个低价,写代码提取图片很快就搞定了。

然后刚用上不久,不出意外就出意外了,客户导入一张pdf后出现很多无法识别的图片,刚开始以为是压缩质量的问题,因为提取的图片需要保存指定格式,然后为了保证占用最少的空间和OCR识别成功率,选择了一个中等压缩比例。不说了,直接将压缩比例调到最高质量后测试没问题就交付了。果不其然,还是不行,于是让客户发一些有问题的pdf文件,打开一看,里面每一页除了发票,还有一些水印和二维码图片。不说了,调整程序,只提取宽度和高度不少于某个值的第一张图片。不出意外肯定出幺蛾子,有的一页有多张发票都要提取。继续改程序,ok了。

又用了不久,又出问题了。按惯例,让客户发有问题的pdf文件,打开一看没看到问题,每页就一张图片,非常清晰,但是提取出来的图片却没有文字,非常不解。后来想明白了,应该是拼接的,并不是一个整体,提取的时候文字没有提取就只有一个空白的发票。哎,说多了都是泪,怎么办呢,这下就不能只提取了,得把每一页的所有内容转换为图片再导出。但是在网上找了很久,但最终只有几个可行方案,大部分是付费的,最终找到一个免费的,但是要在服务器安装一个插件,然后再引入几个nuget包,最终解决了。

最后又优化了一下,先判断提取时有没有文字,有文字就采用把整页转换为图片的方式,没有文字就判断是否有多个图片,如果只有一张图片,就直接提取,如果有多张,就按之前的方案,只提取指定大小的图片,然后就交付了。最终运行效果不错,虽然还是有些小问题,比如有的是一张图片里放了几张发票,就是拍照时几张发票一起拍的,这种就没办法了(当然也不是完全没办法,通过AI识别并分离是可行的,但成本过高)。

所以有时候看着一个小需求,背后不简单。

TAG标签:图片提取


邮 箱:ydx85219@126.com
微信1:WV20200202VW
微信2:ealf_80

©2022 AR眼镜圈|浙ICP备2022018358号

技术支持:arclub.cc