Python批量为PDF加水印

简介: 我们自己制作的 PDF 文件,为了避免被别人滥用,通常会加上水印。而市面上很多工具都是收费的,这无疑增加了我们的成本。所以,我使用 Python 编写了一段加水印的代码,可以批量的为多个 PDF 文件加水印,完全是免费的,在这里分享给大家。

ff538d9b1ae721d5eae7fdb86d91007b_20230427_time=1686816000&token=6b204e1e64e29fd758dd9256c697ac67&role=free.gif

大家好,我是水滴~

我们自己制作的 PDF 文件,为了避免被别人滥用,通常会加上水印。而市面上很多工具都是收费的,这无疑增加了我们的成本。

所以,我使用 Python 编写了一段加水印的代码,可以批量的为多个 PDF 文件加水印,完全是免费的,在这里分享给大家。

上面的 GIF 图片就是批量加水印的过程。在使用前,需要准备水印文件,并安装 PyPDF2 库,下面是详细教程。

制作水印文件

创建一个 Word 文档,用 WPS 工具插入一个水印。水印可以是图片,也可以是文字,根据自己的需要编辑即可。最后将 Word 文件转换成 PDF ,这样水印文件就制作完成了。

下面截图是我制作的一个水印文件,文件名为“水印.pdf”。

eedfd276de4ca124d3857f96377723cf_ceee46efecec6ea6932addf4a60015c_time=1686816000&token=8670555ca4ec4f30e62cd5bd5972be64&role=free.png

安装 PyPDF2

PyPDF2 是一个免费且开源的 Python 第三方库,主要用来操作 PDF 文件。其功能主要包括拆分、合并、裁剪、转换、加密、加水印等。

下面是安装命令:

pip install PyPDF2

批量加水印代码

获取指定目录下所有 PDF 文件:

def get_pdf_files(input_path):
    # 创建一个空的列表,用于存放所有PDF文件
    pdf_files = list()

    # 获取该目录下所有文件,并遍历
    for filename in os.listdir(input_path):
        # 筛选出所有PDF文件,并放入 pdf_files 中
        if filename.endswith(".pdf"):
            if filename.endswith("水印.pdf"):
                # 忽略带水印的PDF文件
                continue
            pdf_files.append(input_path + filename)

    return pdf_files

为单个 PDF 文件添加水印:

def add_watermark(watermark_file, pdf_file):
    # 读取水印文件,并获取含有水印的页
    watermark_reader = PdfReader(watermark_file)
    watermark_page = watermark_reader.pages[0]

    # 创建一个写缓存,用于缓存合并后的结果页
    pdf_writer = PdfWriter()
    # 读取PDF文件
    pdf_reader = PdfReader(pdf_file)

    # 获取PDF所有页,并遍历
    for pdf_page in pdf_reader.pages:
        # 将水印页合并到当前页上,并添加到写缓存中
        pdf_page.merge_page(watermark_page)
        pdf_writer.add_page(pdf_page)

    # 将合并后的PDF文件,写入到指定地址
    with open("_水印".join(os.path.splitext(pdf_file)), "wb") as result_path:
        pdf_writer.write(result_path)

批量加水印:

# 获取指定目录下所有PDF文件
pdf_files = get_pdf_files("E:\\XXX\\")
# 遍历这些PDF文件,并添加水印
for pdf_file in pdf_files:
    print("开始添加水印 -> " + pdf_file)
    add_watermark("E:\\XXX\\水印.pdf", pdf_file)

加水印后的效果:

e30f4aa3f884496d51da4f70918e38bc_c940f4fccc8fb510ca195c49ab53243_time=1686816000&token=3e4ad5002cfad0aed65c305068d721a5&role=free.png

🍅🍅🍅 获取源码,请在下方「水滴技术」公众号回复:20230609

相关文章
|
2月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
48 3
|
2月前
|
计算机视觉 Python
Python操作PDF文件
Python操作PDF文件
34 1
|
2月前
|
存储 安全 网络安全
Python编程--使用PyPDF解析PDF文件中的元数据
Python编程--使用PyPDF解析PDF文件中的元数据
65 1
|
2月前
|
算法 Java 程序员
【福利😍】2024年最新103本互联网大厂程序员编程书合集【高清文字版无水印pdf】
推荐优质编程电子书资源,涵盖Python入门、算法设计、Java高并发、Docker、机器学习等领域,适合从小白到高级开发者。书籍包括《编程小白的第一本Python入门书》、《编程珠玑》等,助你提升技能,紧跟技术前沿,在职场中脱颖而出。下载地址含国内外网盘链接,更多资源可访问资料吧网站获取。
196 0
|
2月前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
42 0
|
3月前
|
数据安全/隐私保护 Python
Python办公自动化:给pdf加水印
Python办公自动化:给pdf加水印
46 0
|
3月前
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
29 0
|
数据安全/隐私保护 Python
python-批量添加图片水印
前言: 最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印。 话不多说,直接上代码。 一、单张图片添加文字水印 # -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.
1844 0
|
13天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
12天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。