PDF文件去除水印,pdf去水印的三种方法
本文主要介绍如何使用Python实现PDF水印去除功能。通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。
00-1010前言原则特色结果安装取决于代码理念
目录
你为什么做这个?
有时候从网上下载的pdf有水印,看着不舒服。
比如我从网上下载试卷,然后去打印店打印。打印出来后水印看着不舒服,而去水印的wps需要会员,我是程序员。为什么不做一个呢?为什么不做呢?
虽然最后还是做出来了,但还是有局限性。
前言
将pdf转换为图片,然后给图片添加水印。
水印是有条件的。水印的颜色必须与pdf中文本的rgb不同,然后将水印的颜色改为背景色。
原理
很多网上的水印原理和我的差不多,但是都是先把pdf转换成图像并存储,然后对图像进行水印处理,再把图像拼接成pdf。
而且我不需要中间步骤。我直接输入输出pdf文件。
特色
成果
图像
pip安装枕头
菲茨
pip安装PyMuPDF
安装依赖
程序处理pdf需要很长时间(因为像素被处理)。您可以先测试较少页面的pdf,然后再移除较多页面的pdf。
从PIL进口图片
导入操作系统
导入io
导入fitz
导入时间
def single _ pdf _ clear water(pdf _ path : str):
Pdf=fitz.open(Pdf_path) #打开pdf目录
Pdf_img=fitz.open() #打开一个空文件保存图片Pdf
对于pdf:中的page_inf
Definition=3 # definition,感觉输出的pdf不够清晰,可以放大,文件大小也会变大。
matrix=fitz。矩阵(定义,定义)
img=page _ INF . get _ pixmap(matrix=matrix)。兆字节()
img=Image.open(io。字节数(img))
宽度,高度=img.size
对于范围(宽度):内的I
对于范围(高度):内的j
如果sum (img.getpixel ((i,j)) 6003360 # 600这里你需要根据你的水印的颜色来改变。
img.putpixel((i,j),(255,255,255))
img=img . tobytes()#=img=NP . as array(img);img=字节数组(img)
img=fitz。像素图(fitz.csRGB,宽度,高度,图像)
img=img.tobytes()
img=fitz.open(png ,img)
pdf_bytes=img.convert_to_pdf()
pdf _ img . insert _ pdf(fitz . open( pdf ,pdf_bytes))
如果不是os.path.exists(“输出”):
Os.makedirs(output) #处理后的pdf存储在输出目录中。
pdf _ img . save( output/watered pdf _ OS . path . basename(pdf _ path))
def group _ pdf _ clear water(path _ array : list[str]):
打印( * * * * * * * * * * * *去除水印需要很长时间* * * * * * * * )
对于path_array:中的pdf_path
打印(pdf_path,转到水印.)
单一_pdf_clearwater(pdf_path)
打印(“完成”)
DEF _ pdf _ Files(folder : STR)-List[STR]: #一个文件夹中有多少个PDF文件?
file_list=[]
用于os.walk(文件夹):中的a、b、c
如果b==[]:
对于c:中的文件名
如果文件名[-3:]。lower()==pdf:
file_path=os.path.join(a,文件名)
file_list.append(文件路径)
打印(文件夹, 3360有,len(文件列表), pdf文件)
返回文件列表
if __name__==__main__:
time_start=time.time()
path _ list=folder _ pdf _ files( pdf目录)
group_pdf_clearwater(路径_列表)
time_end=time.time()
Print(程序运行时间:,round(time_end-time_start,2),秒)
代码
虽然最终实现了,但也有局限性。
为了去掉保存后拍照这个中间步骤,我查阅了很多文献资料,后来发现只有我最不想看的英文文献找到了问题的答案。我只是觉得偏颇之处只存在于英语文学中。
因为限制,不知道能不能用python-普通pdf的水印逆向思维操作,就是直接把水印图层拿出来。
如果要处理的pdf文件很多,页面很多,程序就会运行很长时间,让我感觉像是深度学习。
这就是这篇关于Python的PDF水印去除示例代码的文章。关于Python PDF水印去除的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。