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

相关文章
|
1月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
|
1月前
|
计算机视觉 Python
Python操作PDF文件
Python操作PDF文件
|
1月前
|
存储 安全 网络安全
Python编程--使用PyPDF解析PDF文件中的元数据
Python编程--使用PyPDF解析PDF文件中的元数据
|
1月前
|
算法 Java 程序员
【福利😍】2024年最新103本互联网大厂程序员编程书合集【高清文字版无水印pdf】
推荐优质编程电子书资源,涵盖Python入门、算法设计、Java高并发、Docker、机器学习等领域,适合从小白到高级开发者。书籍包括《编程小白的第一本Python入门书》、《编程珠玑》等,助你提升技能,紧跟技术前沿,在职场中脱颖而出。下载地址含国内外网盘链接,更多资源可访问资料吧网站获取。
117 0
|
1月前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
|
2月前
|
数据安全/隐私保护 Python
Python办公自动化:给pdf加水印
Python办公自动化:给pdf加水印
30 0
|
2月前
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
23 0
|
4月前
|
Unix Linux Shell
Sphinx是一个Python文档生成工具,它可以解析reStructuredText或Markdown格式的源代码注释,并生成多种输出格式,如HTML、LaTeX、PDF、ePub等。
Sphinx是一个Python文档生成工具,它可以解析reStructuredText或Markdown格式的源代码注释,并生成多种输出格式,如HTML、LaTeX、PDF、ePub等。
|
存储 对象存储 Python
第107天: Python 解析 PDF
第107天: Python 解析 PDF
803 0
第107天: Python 解析 PDF
|
1天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
11 4

热门文章

最新文章