1.说明:
下载到的pdf总会有一些水印,pdf文件水印添加方式除了acrobat adobe自带的以外,还有很多,所以去除水印方法也很多,这里介绍的也只是一种适用python批量删除图片水印Xobject的方法,对于不想装pitstop、abbyy的情况可供君参考,程序需要完善的地方很多,目前只是实现单一的批量删除pdf图片水印。
2.分析:
分析原pdf水印,排除是页眉页脚,Acrobat添加水印等,在内容窗口分析,可看出此pdf水印为图片水印。
001.png (285.23 KB, 下载次数: 1)
2020-10-17 12:06 上传
2.1 思路:
使用python的fitz库,pdf逐页提取扫描图片,图片再次合并为新pdf,完成“删除”水印。
网上有现成使用fitz库中._getXrefString()方法提取所有图片的代码,测试发现图片提取没有问题,但因为图片提取时无识别,导致提取页面顺序是乱的,水印页面也同样提取,需要通过另外的代码去判别剔除(使用PIL对大小判定可实现),顺序问题在在未深刻理解源代码的前提下未解决,故使用前述逐页提取目标页的方法,调试可行。
2.2 调试:
单页分析,使用fitz的page类下.getImageList()方法,单页得到所有图片信息数组,进一步分析其中的图片大小