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月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
123 0
|
13天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
211 0
|
2月前
|
程序员 数据安全/隐私保护 Python
1行Python代码,实现PDF的加密、解密
程序员晚枫分享使用python-office库实现PDF批量加密与解密的新方法。只需一行代码,即可完成单个或多个PDF文件的加密、解密操作,支持文件路径与正则筛选,适合自动化办公需求。更新至最新版,适配性更佳,操作更简单。
1行Python代码,实现PDF的加密、解密
|
3月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
2月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
384 0
|
3月前
|
前端开发 安全 Java
办公自动化必修课:用Python打造PDF全能处理工具
在职场中,PDF处理常令人崩溃:拆分、合并、加密等问题严重影响效率。本文教你用Python打造一个包含拆分、合并、加密、水印四大功能的PDF工具箱,通过实战代码提升办公自动化水平,让文档操作像拼乐高一样简单高效。
127 0
|
4月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
3月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
426 40
|
6月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
5月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
162 10

推荐镜像

更多