前阵子公司要处理三百多份供应商的报价单,都是PDF格式。我以前遇到这种事,只会老老实实打开一份,复制,粘贴到Excel,再打开下一份。那些日子我盯着屏幕,眼睛都快瞎了。右手食指因为反复按ctrl+C和ctrl+V,直接疼得贴了膏药。后来有个新来的同事看见了,问我怎么不用Python。我说那玩意儿能弄PDF?他当场给我演示了一下,我当场就愣住了。
他写了一个Python脚本,用了一个叫PyMuPDF的库,还有一个叫pdfplumber的。你们知道结果怎么样吗?原本我要忙三天的活,他跑了三分钟。没错,三分钟。我当时第一反应不是高兴,是觉得自己像个傻子。我之前手动复制粘贴的那三年,到底图什么?
我赶紧让他教我怎么弄。他跟我说,得先安装Python,再去命令行装两个库,一个叫PyMuPDF,一个叫pdfplumber。装完之后,代码其实就几行。比如你想要提取PDF里的所有文字,写个循环,把每一页读出来,然后往一个列表里装,最后一把倒进Excel。就这么简单。
我试了一下,遇到的第一份PDF是扫描件,直接提取出来全是乱码。我差点又觉得这方法不靠谱。结果同事说扫描件得用OCR,他又给我推荐了一个库叫pytesseract。配合Pillow这个图像处理库,把扫描的PDF先转成图片,再用OCR识别文字。虽然识别率不是百分之百,但九成以上的字都能认出来。剩下那些错的,改一改就行。你想想,改三个小时的错,跟原本手动敲三天的字,哪个划算?
最让我震惊的是,他还能处理表格。好多PDF里的报价单其实就是表格样式的,你普通复制粘贴,那些格子里的数据全混在一起。但用了pdfplumber的extract_tables功能,它能直接把表格拆出来,一行一行,一列一列,连格式都保持得挺好。我当时试了一份带表格的合同,提取出来的数据直接能黏到Excel里,连对齐都不用调。
说真的,我要是早知道这些,大概能省下整整一年的加班时间。以前我总觉得Python是那些程序员搞的玩意儿,跟我一个做采购的没关系。后来发现我错了,只要是跟文件打交道的工作,几乎都能用上。PDF,Word,Excel,这些平时折磨我们的文件格式,Python都有对应的库去处理。
我还试过用Python批量合并PDF。以前我手动合并文件,得用Adobe的软件,那个软件动不动就卡住,有时候还会莫名其妙收费。用Python的PyPDF2库,就是把所有PDF文件的路径列出来,然后一个一个往一个新的PDF对象里追加。代码大概五到八行,跑完就完成。你问我为什么不早学?我也问自己。
现在我已经把这个方法教给了好几个同事。他们以前也是一个个复制黏贴的。学完之后,大家最常说的就是,“我们以前到底在干什么?”真的,有时候不是你不够努力,是你没找到对的工具。手动复制粘贴PDF这种活,本质上就是拿人的手去跟机器比效率,怎么比都比不过。
如果你现在还在傻傻地打开PDF,选中文字,复制,再切到Word里粘贴。我劝你花一个周末,去网上找个Python教程,不需要多深,学会安装库,学会调用那几个现成的函数就行。你不用成为一个程序员,你只要成为一个会用工具的人。学会这招之后,你不止省时间,你还省下了那些因为枯燥重复工作而产生的烦躁。
最后说一句,科技这东西,就是用来帮人做那些没意思的工作的。你不去用它,它不会自动来帮你。但只要你愿意迈出第一步,你就会发现,以前那些让你头疼的PDF,其实都是纸老虎。
夜雨聆风