当前位置:首页 > 知识分享 > 正文内容

今日知识分享怎么去除pdf文件的水印文字

2年前 (2023-05-27)知识分享60

网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的。

安装模块

PIL:Python Imaging Library 是 python 上非常强大的图像处理标准库,但是只能支持 python 2.7,于是就有志愿者在 PIL 的基础上创建了支持 python 3的 pillow,并加入了一些新的特性。

pip install pillow

pymupdf 可以用 python 访问扩展名为*.pdf、.xps、.oxps、.epub、.cbz或*.fb2的文件。还支持了许多流行的图像格式,包括多页TIFF图像。

pip install PyMuPDF

导入需要用到的模块

from PIL import Image
from itertools import product
import fitz
import os

获取图片的 RGB

pdf 去水印的原理和图片去水印的原理差不多,小编先从去除上面那张图片的水印开始。

学过计算机的小伙伴们都知道 ,计算机中用 RGB 代表红绿蓝,用 (255, 0, 0) 表示红色,(0, 255, 0) 表示绿色,(0, 0, 255) 表示蓝色,(255, 255, 255) 表示白色,(0, 0, 0) 表示黑色,去水印的原理就是将水印的颜色变成白色(255, 255, 255)。

首先获取图片宽和高,用 itertools 模块获取宽和高的笛卡尔积作为像素点。每个像素点的颜色都由 前三位的 RGB 和 第四位的 Alpha 通道构成。Alpha 通道不需要,只要 RGB 数据。

def remove_img():
    image_file = input("请输入图片地址:")

    img = Image.open(image_file)
    width, height = img.size

    for pos in product(range(width), range(height)):
        rgb = img.getpixel(pos)[:3]
        print(rgb)

图片去水印

用微信截图的方式查看水印像素点的 RGB。

可以看到水印的 RGB 是 (210, 210, 210),这里用 RGB 的和超过 620 就判定是水印点,此时将像素颜色替换为白色。最后保存图片。

rgb = img.getpixel(pos)[:3]
if(sum(rgb) >= 620):
    img.putpixel(pos, (255, 255, 255))

img.save('d:/qsy.png')

示例结果:

PDF 去水印

PDF 去水印的原理和图片去水印的原理大致相同,用 PyMuPDF 打开 pdf 文件后,将 pdf 的每一页都转换为图片 pixmap,pixmap 有它自己的 RGB,只需要将 pdf 水印中的 RGB 改为(255, 255, 255) 最后保存为图片。

def remove_pdf():
    page_num = 0
    pdf_file = input("请输入 pdf 地址:")
    pdf = fitz.open(pdf_file);
    for page in pdf:
        pixmap = page.get_pixmap()
        for pos in product(range(pixmap.width), range(pixmap.height)):
            rgb = pixmap.pixel(pos[0], pos[1])
            if(sum(rgb) >= 620):
                pixmap.set_pixel(pos[0], pos[1], (255, 255, 255))
        pixmap.pil_save(f"d:/pdf_images/{page_num}.png")
        print(f"第{page_num}水印去除完成")
        page_num = page_num + 1

示例结果:

图片转为 pdf

图片转 pdf 需要注意的是图片的排序,数字文件名必须先转换为 int 类型后排序。用 PyMuPDF 模块打开图片后将图片用 convertToPDF() 函数转成单页的 pdf。插入到新的 pdf 文件中。

def pic2pdf():
    pic_dir = input("请输入图片文件夹路径:")
    
    pdf = fitz.open()
    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)  
        pdfbytes = imgdoc.convertToPDF()   
        imgpdf = fitz.open("pdf", pdfbytes)
        pdf.insertPDF(imgpdf)       
    pdf.save("d:/demo.pdf")         
    pdf.close()

总结

pdf 和图片上恼人的水印终于可以在强大的 python 面前消失了。小伙伴们学会了吗?

扫描二维码推送至手机访问。

版权声明:本文由阿龙玩站网发布,如需转载请注明出处。

本文链接:https://www.longge2021.cn/zhideyikan/26321.html

分享给朋友:

“今日知识分享怎么去除pdf文件的水印文字” 的相关文章

怎样鉴别蟹苗质量好坏,怎样鉴别活蟹的质量

怎样鉴别蟹苗质量好坏,怎样鉴别活蟹的质量

1 问 如果是人工繁殖的蟹苗,应询问蟹苗的日龄、饵料投喂情况、淡化处理过程以及池内蟹苗的密度。饲养管理较好的蟹苗,日龄一般在4~5天,经过4~5天的淡化处理后,池内蟹苗的密度较大,且比较活跃。如果购买的是天然蟹苗,则要了解蟹苗捕捞的天数及淡化处理情况;如未经淡化处理千万不要购买。 2 称 将准备出...

微信红包封面有多疯狂?

微信红包封面有多疯狂?

6 年前,的上线,几乎是一夜之间,拉动了微信用户绑定了 2 亿张银行卡,生生从阿里看似固若金汤的地盘上抢下山头,如今已是分庭而治之势。 此事给阿里带来的震动是核弹级别的,本以为已经结束的网络支付战争硝烟再起,马云痛斥此事为「珍珠港偷袭」,可见微信红包的奇袭打得阿里有多痛。反过来也说明,微信红包这一...

普通人成功创业的关键因素

普通人成功创业的关键因素

常言道,九死一生。创业是一项高风险不确定的事情,需要特别谨慎才行。虽然创业成功,会带来巨大的回报,但是我们也千万不能忽视创业的巨大风险,尤其对于普通人来说更是如此。因为普通人试错成本太高了,败则死无葬身之地,这可不是吓唬在看的诸位。 大家或许看过这种新闻报道,某某某看中一个项目,觉得能赚大钱,...

钻石夺宝201必中水晶吗(荣耀水晶抽361次多少钱)

钻石夺宝201必中水晶吗(荣耀水晶抽361次多少钱)

前言: 各位小伙伴大家好,这里是不仅游戏打得6,长得还很帅的熊猫哥哥~ 王者荣耀中最有价值的游戏道具之一就是荣耀水晶,玩家们可以使用荣耀水晶来兑换特定商店中的皮肤和英雄,例如武则天、小乔-天鹅之梦等等,有很多高人气皮肤。 荣耀水晶需要通过积分夺宝来获取,非常看运气,很多手气...

网站推广是如何收费的(介绍网站推广的方法及收费方式)

网站推广是如何收费的(介绍网站推广的方法及收费方式)

百度能满足各式各样用户的需求,说起百度是人人都熟悉的平台了,“度娘”简直是如雷贯耳,成为了很多小伙伴们有疑问时的口头禅。再加上,百度平台发展到现在已拥有超过亿万用户了,非常受小伙伴 百度能满足各式各样用户的需求,说起百度是人人都熟悉的平台了,“度娘”简直是如雷贯耳,成为了很多小伙伴们有疑问时的口头...

兰花几月开花哪个季节(兰花用什么肥料最好)

兰花几月开花哪个季节(兰花用什么肥料最好)

养兰花,3种肥交替使用,长势旺盛、叶子浓绿在养兰花的过程中,经常会有花友在给兰花施肥问题上遇到困扰,不知道该给兰花施什么肥,又该如何去合理的施肥。兰花长得旺盛,叶色浓绿,正常开花,才具观赏价值,这就需要平时做到合理的水肥 养兰花,3种肥交替使用,长势旺盛、叶子浓绿 在养兰花的过程中,经常会有花友...

马云近几天出什么事了新闻(马云移民的真实原因)

马云近几天出什么事了新闻(马云移民的真实原因)

对于大佬们的一举一动,一直以来都备受热议,如今马云和刘强东等人的套现离场,更是让很多人议论不已,他们为什么要套现选择移居国外生活呢?对于这种现象,网友们也是众说纷纭,大家看待这件事的角度还是不同的。有人认为,不管是多么正 对于大佬们的一举一动,一直以来都备受热议,如今马云和刘强东等人的套现离场...

360安全浏览器兼容模式怎么设置在哪里(360浏览器兼容模式设置不了)

360安全浏览器兼容模式怎么设置在哪里(360浏览器兼容模式设置不了)

在使用浏览器的过程中,可能会遇到需要切换至兼容模式才能打开想要页面的情况。现在很多浏览器都自带防毒功能,可能会把很多元件直接当成病毒自动阻挡,导致一些元素在普通模式下无法显示。本文将根据大家常用的浏览器提供相应的浏览器兼 在使用浏览器的过程中,可能会遇到需要切换至兼容模式才能打开想要页面的情况。现...

武汉10月下旬还会升温吗最新(武汉10月下旬温度怎么样)

武汉10月下旬还会升温吗最新(武汉10月下旬温度怎么样)

要说近期的天气真的像小孩子的脸说变就变,前一秒还热得不行,后一秒就极速下降了20多度,也正是因为这样大家纷纷期待能升温,下面小编就以武汉为例,一起看看武汉10月下旬还会升温吗。武汉10月下旬还会升温吗最新就目前来看武汉1 要说近期的天气真的像小孩子的脸说变就变,前一秒还热得不行,后一秒就极速下降了...

嘴唇疱疹过后为什么刺痛肿胀(为啥疱疹过后嘴肿消不下去)

嘴唇疱疹过后为什么刺痛肿胀(为啥疱疹过后嘴肿消不下去)

一到换季,每个人的身体就会反射一些情况出来,而免疫力比较差的朋友们,就有可能会在嘴唇部分长出疱疹。那么,嘴唇疱疹过后为什么刺痛肿胀?为啥疱疹过后嘴肿消不下去?一起来看看久久派带来的详细介绍吧!嘴唇疱疹过后为什么刺痛肿胀 一到换季,每个人的身体就会反射一些情况出来,而免疫力比较差的朋友们,就有可能会...

压岁钱是2023年除夕给还是大年初一给(除夕夜几点发压岁钱)

压岁钱是2023年除夕给还是大年初一给(除夕夜几点发压岁钱)

压岁钱是2023年除夕给还是大年初一给是大家常聊的,对于小孩子来讲一年中最为喜爱的节日除了寒暑假就是春节了,毕竟过年长辈给的压岁钱可以说是一笔不小的收入了,下面小编就和大家一同看看什么是压岁钱。压岁钱是2023年除夕给还 压岁钱是2023年除夕给还是大年初一给是大家常聊的,对于小孩子来讲一年中最为...

微单相机销量排行?(2019微单相机排行)

微单相机销量排行?(2019微单相机排行)

2019微单相机排行 微单相机销量排行? 微单作为目前相机市场最热门的机型,受到了消费者们的普遍关注。虽然手机拍摄性能越来越强,但是选购微单的也大有人在。今天我们就给大家带来了,京东商城微单销量排行榜TOP5。要知道在竞争激烈的微单市场要成为销量前五名的产品可不是容易事,必须具备很...

三花淡奶可以直接饮用吗(三花淡奶对人有危害吗)

三花淡奶可以直接饮用吗(三花淡奶对人有危害吗)

近期海科技食品中有三花淡奶这个词冒出,其实,三花淡奶本身就是冲饮服用的,但是有很多商家利用三花淡奶的特性,直接导入到鱼汤或者羊肉汤中,不需要熬制很久,就会出现鲜嫩且美味的口感,省了不少时间呢!三花淡奶可以直接饮用吗可以 近期海科技食品中有三花淡奶这个词冒出,其实,三花淡奶本身就是冲饮服用的,但是有...

win7电脑蓝牙无法使用怎么办?

win7电脑蓝牙无法使用怎么办?

操作方法 01现在的笔记本中都会内置蓝牙功能,可以让我们的笔记本在没有数据线的情况下也能轻松连接传输文件。今天我要使用蓝牙传东西的时候,发现蓝牙不能用了,能连接但不能传输文件了,但好在问题不大,及时解决了。下面我就跟大家分享一下win7下蓝牙无法使用的解决方法。1,现在任务栏找到蓝牙开启的图...

百度地图怎么样开启和关闭导航?

百度地图怎么样开启和关闭导航?

百度手机地图是一款由百度公司为您提供的基于地图服务的应用软件,立志于成为您最贴心的全能出行助手,没啥可以介绍的啦!感兴趣的话,赶紧去下载试试吧!在最新版本中,百度为驾车用户推出摄像头提醒功能,针对已规划路线相关摄像头、道路出口和途径地标进行语音提醒,帮助用户安心驾驶! 步骤/方法 01开启...