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月前
|
数据挖掘 程序员 数据安全/隐私保护
解锁PDF潜力:9个Python库让你的文档处理更高效
程序员晚枫分享了Python处理PDF的9个第三方库,包括PyPDF2、pdfrw、ReportLab、pikepdf、pdfplumber、pdfminer.six、PyMuPDF、popdf和borb,各具优缺点。选择时需考虑应用场景、功能需求、库的维护状态和开源协议。例如,pdfplumber擅长内容提取,而ReportLab和PyMuPDF适用于创建和修改内容。
191 7
|
2月前
|
Python
小白入门必备!计科教授的Python精要参考PDF开放下载!
随着互联网产业的高速发展,在网络上早已积累了极其丰富的Python学习资料,任何人都可以基于这些资源,自学掌握 Python。 但实际上,网络上充斥的资源太多、太杂且不成体系,在没有足够的编程/工程经验之前,仅靠“看”线上资源自学,的确是一件非常困难的事。
|
2月前
|
数据采集 数据安全/隐私保护 Python
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
小白入门必备!计算机科学教程的Python精要参考PDF开放下载!
随着互联网产业的高速发展,在网络上早已积累了极其丰富的Python学习资料,任何人都可以基于这些资源,自学掌握 Python。 但实际上,网络上充斥的资源太多、太杂且不成体系,在没有足够的编程/工程经验之前,仅靠“看”线上资源自学,的确是一件非常困难的事。
|
2月前
|
Python
2024年最全用Python和PIL美化图像:文本覆盖技术实战,Python高级面试题pdf
2024年最全用Python和PIL美化图像:文本覆盖技术实战,Python高级面试题pdf
|
2月前
|
存储 Python
Python自动化办公之PDF拆分工具
Python自动化办公之PDF拆分工具
|
存储 Python
Python自动化办公之PDF拆分工具
今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍!
Python自动化办公之PDF拆分工具
|
3天前
|
存储 SQL 数据可视化
Python 金融编程第二版(二)(4)
Python 金融编程第二版(二)
11 1
|
3天前
|
存储 分布式计算 数据可视化
Python 金融编程第二版(四)(2)
Python 金融编程第二版(四)
13 0
|
3天前
|
存储 SQL 数据可视化
Python 金融编程第二版(四)(1)
Python 金融编程第二版(四)
9 0