乐于分享
好东西不私藏

批量给PDF加水印,免费无限制,40行代码搞定

批量给PDF加水印,免费无限制,40行代码搞定

一份重要的合同要发给客户,担心被随意传播。想加水印保护版权,打开Adobe Acrobat——提示你订阅会员,一个月几百块。打开在线工具——"免费版仅限3页"或者"生成的文件带平台水印"。折腾一圈,最后只能手动一页页贴水印,贴到第50页的时候手都酸了。

我让AI写了40行代码,做了一个事:批量给PDF文件添加文字水印,免费、无页数限制、无平台水印。

原来: 打开Acrobat(要钱)→ 在线工具(限制页数)→ 手动一页页贴(太慢)

现在: 运行脚本 → 输入文件夹路径 → 几秒钟搞定

我是怎么让AI写这段代码的

直接复制下面这段提示词发给Claude、GPT-4或DeepSeek就行:

text

写一个Python脚本,实现以下功能:1. 用户输入一个文件夹路径2. 遍历文件夹里所有.pdf文件3. 给每页添加文字水印(如「机密文件」「内部资料」)4. 水印位置:页面中心,45度倾斜5. 水印透明度:30%6. 保存到新文件夹「水印版」7. 使用PyPDF2和ReportLab库
AI会帮你生成完整的代码。如果第一次生成的效果不理想,可以继续追问调整水印位置、透明度或字体大小,直到满意为止。

核心代码(精简版)

from PyPDF2 import PdfReader, PdfWriterfrom reportlab.pdfgen import canvasfrom io import BytesIO# 创建水印packet = BytesIO()c = canvas.Canvas(packet)c.setFont('Helvetica', 60)c.drawCentredString(300, 400, "机密文件")c.save()packet.seek(0)watermark = PdfReader(packet)# 添加到PDFreader = PdfReader("原文件.pdf")writer = PdfWriter()for page in reader.pages:    page.merge_page(watermark.pages[0])    writer.add_page(page)with open("加水印.pdf", 'wb') as f:    writer.write(f)

需要修改的地方(两处)

  1. 水印文字:运行时会让你输入,直接打字就行。如果不输入,默认是"机密文件"。

  2. 字体大小:代码里写的是60,如果觉得太大或太小,找到 c.setFont('Helvetica', 60) 这一行,把60改成你想要的大小。

安装依赖(只需一行命令)

bash

pip install PyPDF2 reportlab
如果安装速度慢,可以用国内镜像源:

bash

pip install PyPDF2 reportlab -i https://pypi.tuna.tsinghua.edu.cn/simple
使用步骤(三步走)
  1. 准备PDF文件:把所有要加水印的PDF放在同一个文件夹里,比如 D:/合同文件/

  2. 运行脚本:打开终端(Mac/Linux)或命令提示符(Windows),执行:

    bash

    python pdf_watermark.py
    然后输入文件夹路径和水印文字
  3. 查看结果:打开原文件夹里的「水印版」子文件夹,所有带水印的PDF已经躺在里面了

相关学习资料