首页IT科技pdf去水印的app手机软件哪个好(python一键去PDF水印,只需十行代码,超级简单…)

pdf去水印的app手机软件哪个好(python一键去PDF水印,只需十行代码,超级简单…)

时间2025-06-20 08:00:40分类IT科技浏览4326
导读:算了,弟弟长大了,看在打不过他的份上,就不打他了~...

算了             ,弟弟长大了                   ,看在打不过他的份上      ,就不打他了~

稍加思索       ,我想起了Python不是可以去水印?说搞就搞!

去除水印原理

去除方法:

用 PyMuPDF 打开 pdf 文件                   ,将 pdf 的每一页都转换为图片 pixmap pixmap 有它自己的RGB             ,只需要将 pdf 水印中的 RGB 改为(255, 255, 255)       ,并保存图片 ; 按照生成的图片                   ,插入到pdf文档中;

因为pfd文档无法直接去除水印             ,需要先将pfd文档转换成图片,在逐一对图片进行水印去除操作                   ,最后在把图片插入到pdf文档中             。

代码剖析

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转换成图片                   ,并去除水印

代码示例:

from PIL import Image from itertools import product import fitz # Python学习交流群:708525271 # 去除pdf的水印 def remove_pdfwatermark(): #打开源pfd文件 pdf_file = fitz.open("源码找落落阿.pdf") #page_no 设置为0 page_no = 0 #page在pdf文件中遍历 for page in pdf_file: #获取每一页对应的图片pix (pix对象类似于我们上面看到的img对象      ,可以读取      、修改它的 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

代码示例:

from PIL import Image from itertools import product import fitz 图片转为pdf #图片所在的文件夹 pic_dir = F:\123 pdf = fitz.open() #图片数字文件先转换成int类型进行排序 img_files = sorted(os.listdir(pic_dir), key=lambda x: int(str(x).split(.)[0])) for img in img_files: print(img) imgdoc = fitz.open(pic_dir + / + img) #将打开后的图片转成单页pdf pdfbytes = imgdoc.convertToPDF() imgpdf = fitz.open("pdf", pdfbytes) #将单页pdf插入到新的pdf文档中 pdf.insertPDF(imgpdf) pdf.save("源码找落落阿_完成.pdf") pdf.close()

执行代码

查看生成的pdf文档

代码整合

上面的内容都了解以后                   ,我们就整合代码             ,直接运行就可以了                    。

from PIL import Image from itertools import product import fitz # 去除pdf的水印 def remove_pdfwatermark(): # 打开源pfd文件 pdf_file = fitz.open("源码找落落阿.pdf") # page_no 设置为0 page_no = 0 # page在pdf文件中遍历 for page in pdf_file: # 获取每一页对应的图片pix (pix对象类似于我们上面看到的img对象,可以读取                   、修改它的 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 # 去除的pdf水印添加到pdf文件中 def pictopdf(): # 水印截图所在的文件夹 # pic_dir = input("请输入图片文件夹路径:") pic_dir = F:\123 pdf = fitz.open() # 图片数字文件先转换成int类型进行排序 img_files = sorted(os.listdir(pic_dir), key=lambda x: int(str(x).split(.)[0])) for img in img_files: print(img) imgdoc = fitz.open(pic_dir + / + img) # 将打开后的图片转成单页pdf pdfbytes = imgdoc.convertToPDF() imgpdf = fitz.open("pdf", pdfbytes) # 将单页pdf插入到新的pdf文档中 pdf.insertPDF(imgpdf) pdf.save("源码找落落阿_完成.pdf") pdf.close() if __name__ == __main__: remove_pdfwatermark() pictopdf() # 兄弟们学习python                   ,有时候不知道怎么学      ,从哪里开始学             。掌握了基本的一些语法或者做了两个案例后       ,不知道下一步怎么走                   ,不知道如何去学习更加高深的知识      。 # 那么对于这些大兄弟们             ,我准备了大量的免费视频教程       ,PDF电子书籍                   ,以及源代码! # 直接在这个抠裙 708525271 自取即可~

总结

需要理解的流程是:

pdf文档需要先转换成图片             ,进行水印去除; 再转换成pdf ; 最后插入到新的pdf文档中;

写到这里,今天的分享就差不多快结束了                   ,咱们下次再见!

声明:本站所有文章                   ,如无特殊说明或标注,均为本站原创发布                   。任何个人或组织             ,在未征得本站同意时                   ,禁止复制             、盗用       、采集                   、发布本站内容到任何网站             、书籍等各类媒体平台             。如若本站内容侵犯了原著者的合法权益      ,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
分割有什么用(【第77篇】分割anything)