python pdf去水印,
一般来说,pfd文档不能直接加水印。需要先把pfd文档转换成图片,再把图片一张一张地水印,最后把图片插入pdf文档,非常繁琐。本文将使用十行Python3代码轻松去除PDF文件中的水印。来了解一下吧。
00-1010 1、简介2、代码练习2.1移除原理2.2代码分析2.3代码集成3、总结
目录
屌丝:鱼哥,最近有点出格。
鱼:嗯?什么意思~
屌丝:都一周了,一点小知识都没分享。
鱼:是这个原因吗?
屌丝:没错。我非常喜欢学习。
鱼:我怕有你解决不了的事情。你想起我了吗?
小屌丝:哈~笑话~我能有…什么…什么…东西吗…
鱼:去吧,
屌丝:你让我说这个,我没问!
鱼:去吧,怎么还磨?
小雕丝:我从某站下载的pfd文档有水印。我该如何摆脱它?
鱼:突然想起来PPT还没做完。
屌丝:我刚在楼下开了一家烧烤店,据说不错!
小雨:我的PPT写不完,但是晚上可以写。帮助别人让我更快乐。
1、引言
在上一篇博文中,我们学习了如何给pdf文档添加水印,
在本文中,我们将水印pdf。
如果你不知道如何添加水印,请阅读这篇文章:2行Python代码实现给pdf文件添加水印。
屌丝:你加了水印又去掉了。你在做什么?
鱼:我喜欢,我难得,我愿意!
2、代码实战
移除方法:
1.用PyMupdf打开pdf文件,将pdf的每一页都转换成图片像素图,
2.pixmap自带RGB,只需将pdf水印中的RGB改为(255,255,255)并保存图片即可。
3.将生成的图片插入pdf文档。
因为pfd文档不能直接去除水印,所以需要将pfd文档转换成图片,逐个去除图片中的水印,最后将图片插入pdf文档中。
2.1 去除原理
1.首先检查PDF文档中水印的rgb值。
大家可以看到,RGB(179,179,179),因为我们这里要的是RGB颜色值的和,所以我们认为如果超过510,就认为是水印。
敲黑板
三原色光学色是红、绿、蓝(RGB),也就是说它们是不能分解的三种基本色。其他颜色可以由这三种颜色混合。三种颜色等比例混合时为白色,无光时为黑色。在计算机中,RGB颜色可以用三个字节来表示,一个字节所能表示的最大值是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转换成图片,去掉水印。
代码示例:
# -*-编码:utf-8 -*-
# @时间: 2022-02-23
# @作者:卡尔_DJ
从PIL进口图片
从itertools导入产品
导入fitz
#从pdf中移除水印
def remove_pdfwatermark():
#打开pfd源文件
Pdf_file=fitz.open(向小鱼学习水印. Pdf )
#page_no设置为0
page_no=0
# pdf文件中的页面遍历
对于pdf_file:中的页面
#获取每页对应的图片pix(pix(pix对象类似于我们上面看到的I
mg对象,可以读取、修改它的 RGB)
#page.get_pixmap() 这个操作是不可逆的,即能够实现从 PDF 到图片的转换,但修改图片 RGB 后无法应用到 PDF 上,只能输出为图片
pix = page.get_pixmap()
#遍历图片中的宽和高,如果像素的rgb值总和大于510,就认为是水印,转换成255,255,255-->即白色
for pos in product(range(pix.width), range(pix.height)):
if sum(pix.pixel(pos[0], pos[1])) >= 510:
pix.set_pixel(pos[0], pos[1], (255, 255, 255))
#保存去掉水印的截图
pix.pil_save(f"./{page_no}.png", dpi=(30000, 30000))
#打印结果
print(f第 {page_no} 页去除完成)
page_no += 1
if __name__ == __main__:
remove_pdfwatermark()
执行完成,
查看生成图片:
查看图片内容:
3、图片转为pdf
代码示例:
# -*- coding:utf-8 -*-
执行代码,
查看生成的pdf文档
2.3 代码整合
上面的内容都了解以后,我们就整合代码,直接运行就可以了。
# -*- coding:utf-8 -*-
3、总结
写到这里,今天的分享就差不多快结束了。
需要理解的流程是,
1.pdf文档需要先转换成图片,进行水印去除,
2.再转换成pdf
3.最后插入到新的pdf文档中。
到此这篇关于十行Python3代码实现去除pdf文件水印的文章就介绍到这了,更多相关Python3去除pdf水印内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。