十行Python3代码实现去除pdf文件水印
1、引言
小屌丝:鱼哥,最近有点不像话了。
小鱼:嗯?? 啥个意思嘛~
小屌丝:一周了,没分享小知识了。
小鱼:就因为这个??
小屌丝:那是,我这么爱学习的人。
小鱼:怕是你有什么事情解决不了,想到我了吧?
小屌丝:呵 ~ 笑话 ~ 我 能有…什…么…事情…
小鱼:说吧,
小屌丝:这可是你让我说的,我可没主动要问的!
小鱼:说吧,咋还磨磨唧唧了呢
小屌丝:我在某站下载的pfd文档,有水印,如何去掉啊?
小鱼:我突然想起来,ppt还没写完。
小屌丝:我家楼下刚开一个烧烤店,据说还不错!
小鱼:ppt写不完,可以晚上写,助人为乐让我更快乐。
2、代码实战
在上一篇博文,我们知道了如何给pdf文档添加水印,
而本篇,我们就给pdf去水印
如果不知道如何添加水印,就看这篇:2行python代码实现给pdf文件添加水印
小屌丝:你这添加完水印,又去除水印,你这是闹哪样??
小鱼:我喜欢,我稀罕,我乐意!!
2.1 去除原理
去除方法:
1、用 pymupdf 打开 pdf 文件,将 pdf 的每一页都转换为图片 pixmap,
2、pixmap 有它自己的 rgb,只需要将 pdf 水印中的 rgb 改为(255, 255, 255),并保存图片
3、按照生成的图片,插入到pdf文档中
因为pfd文档无法直接去除水印,需要先将pfd文档转换成图片,在逐一对图片进行水印去除操作,最后在把图片插入到pdf文档中
2.2 代码解析
1、先查看pdf文档中的水印rgb值是多少
可以看到,rgb(179,179,179),因为这里要的是rgb色值总和,所以我们就认为,超过510,就认为是水印。
敲黑板
- 光学三原色是红绿蓝(rgb),也就是说它们是不可分解的三种基本颜色,其他颜色都可以通过这三种颜色混合而成,三种颜色等比例混合就是白色,没有光就是黑色。
- 在计算机中,可以用三个字节表示 rgb 颜色,1个字节能表示的最大数值是 255, 所以,(255, 0, 0)代表红色,(0, 255, 0)代表绿色,(0, 0, 255)代表蓝色。相应地,(255, 255, 255)代表白色,(0, 0, 0)代表黑色。从(0, 0, 0) ~ (255, 255, 255) 之间的任意组合都可以代表一个不同的颜色。
- 图片每个位置颜色由四元组表示,前三位分别是 rgb,第四位是 alpha 通道
2、pdf转换成图片,并去除水印
代码示例:
执行完成,
查看生成图片:
查看图片内容:
3、图片转为pdf
代码示例:
执行代码,
查看生成的pdf文档
2.3 代码整合
上面的内容都了解以后,我们就整合代码,直接运行就可以了。
3、总结
写到这里,今天的分享就差不多快结束了。
需要理解的流程是,
1.pdf文档需要先转换成图片,进行水印去除,
2.再转换成pdf
3.最后插入到新的pdf文档中。
到此这篇关于十行python3代码实现去除pdf文件水印的文章就介绍到这了,更多相关python3去除pdf水印内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!