news 2026/7/10 20:00:22

影刀RPA PDF水印添加:批量处理文档的完整方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
影刀RPA PDF水印添加:批量处理文档的完整方案

title: “影刀RPA PDF水印添加:批量处理文档的完整方案”
date: 2026-07-01
author: 林焱

影刀RPA PDF水印添加:批量处理文档的完整方案

给外发的PDF加水印,防止文件被随意传播。报告、合同、资质文件都需要这个操作。一份两份手动加,几十份靠影刀批量处理,统一格式、省时省力。

什么情况用什么

必须加水印的场景:

  • 外发给客户的报价单、方案书

  • 涉密的财务报表

  • 需要追踪谁泄露了文件(个性化水印,带收件人姓名)

  • 内部流转文件,标注"机密"“仅供内部使用”

不需要的场景:

  • 公开发布的文件,水印没意义
  • 文件量极少,手动加更快

拼多多店群自动化报活动上架!

怎么做

方法1:用PyMuPDF添加文字水印(推荐)

PyMuPDF(fitz)性能最好,支持中文,操作直观。

【影刀操作】

  1. 添加【Python】指令(先安装)

    importsubprocess subprocess.run(['pip','install','PyMuPDF'],capture_output=True)
  2. 添加【Python】指令(给单个PDF加水印)

    importfitz# PyMuPDFimportosdefadd_text_watermark(input_path,output_path,watermark_text,opacity=0.3,color=(0.5,0.5,0.5),font_size=60,rotation=45):""" 给PDF每一页添加对角线文字水印 opacity: 透明度 0-1 color: RGB颜色 (R, G, B) 每个值0-1 """doc=fitz.open(input_path)forpageindoc:page_width=page.rect.width page_height=page.rect.height# 在页面中间偏左、偏右各放一个水印positions=[(page_width*0.3,page_height*0.5),(page_width*0.7,page_height*0.3),]forx,yinpositions:# 插入文本水印page.insert_text((x,y),watermark_text,fontsize=font_size,color=color,rotate=rotation,overlay=False# 放在内容下面)doc.save(output_path,garbage=4,deflate=True)doc.close()print(f'已添加水印:{output_path}')# 单文件处理add_text_watermark(r'C:\原始PDF\报价单.pdf',r'C:\加水印PDF\报价单_水印.pdf','机密 · 仅供内部使用')
  3. 添加【Python】指令(批量处理文件夹)

    importfitzimportos input_dir=r'C:\原始PDF'output_dir=r'C:\加水印PDF'os.makedirs(output_dir,exist_ok=True)success_count=0fail_count=0forfilenameinos.listdir(input_dir):ifnotfilename.endswith('.pdf'):continueinput_path=os.path.join(input_dir,filename)output_path=os.path.join(output_dir,filename)try:add_text_watermark(input_path,output_path,'仅供内部使用')success_count+=1exceptExceptionase:print(f'处理失败:{filename},原因:{e}')fail_count+=1print(f'批量处理完成:成功{success_count}个,失败{fail_count}个')yda.set_variable('watermark_success',success_count)

方法2:个性化水印(带收件人信息)

给不同人发送不同水印,出现泄露时可以追踪来源。

【影刀操作】

  1. 添加【读取Excel】指令,读取收件人列表
  2. 添加【循环】指令,遍历收件人
  3. 在循环内添加【Python】指令
    importfitzimportos recipient_name=current_recipient['name']recipient_email=current_recipient['email']# 个性化水印文字watermark_text=f'专属发送给:{recipient_name}\n{recipient_email}'input_path=r'C:\原始PDF\项目报告.pdf'output_path=f"C:\\个人水印PDF\\项目报告_{recipient_name}.pdf"doc=fitz.open(input_path)forpageindoc:# 右下角加小字标注page.insert_text((page.rect.width-200,page.rect.height-30),f'专属:{recipient_name}',fontsize=8,color=(0.7,0.7,0.7),overlay=True)# 中间对角线大水印page.insert_text((page.rect.width*0.2,page.rect.height*0.5),recipient_name,fontsize=70,color=(0.85,0.85,0.85),rotate=45,overlay=False)doc.save(output_path)doc.close()print(f'已生成:{recipient_name}的专属版本')

方法3:图片水印(logo水印)

品牌文件用公司logo做水印。

【影刀操作】

importfitzfromPILimportImageimportiodefadd_image_watermark(input_path,output_path,logo_path,opacity=0.3):"""在PDF每页右下角添加图片水印"""doc=fitz.open(input_path)# 读取logo并降低透明度logo=Image.open(logo_path).convert('RGBA')logo_w,logo_h=100,50# 水印尺寸logo=logo.resize((logo_w,logo_h))# 调整透明度r,g,b,a=logo.split()a=a.point(lambdax:x*opacity)logo=Image.merge('RGBA',(r,g,b,a))# 保存为字节流buf=io.BytesIO()logo.save(buf,format='PNG')logo_bytes=buf.getvalue()forpageindoc:pw=page.rect.width ph=page.rect.height# 右下角位置rect=fitz.Rect(pw-logo_w-20,ph-logo_h-20,pw-20,ph-20)page.insert_image(rect,stream=logo_bytes,overlay=True)doc.save(output_path)doc.close()

有什么坑

坑1:中文水印乱码

PyMuPDF默认字体不支持中文,insert_text会显示方块。

解决方法:指定中文字体文件:

TEMU店群矩阵自动化运营核价报活动


page.insert_text((x,y),text,fontfile=r'C:\Windows\Fonts\simhei.ttf',fontsize=50)

坑2:原PDF已有版权保护

加密的PDF,PyMuPDF打开时报错:PDF is encrypted

解决方法:打开时提供密码:doc = fitz.open(path, password='xxx'),无密码的加密PDF无法直接处理。

坑3:水印挡住了内容

水印太深,把正文文字盖住了,影响阅读。

解决方法:调低 opacity(0.15-0.2最合适),或者用 overlay=False 把水印放在内容图层下面。

坑4:处理大PDF很慢

300页的PDF加水印要1-2分钟。

解决方法:多进程并行处理,用 multiprocessing.Pool 同时处理多个文件。

总结

PDF批量加水印首选PyMuPDF,性能好、API简洁。关键要解决中文字体问题,以及根据业务需求选择文字水印还是图片水印。个性化水印(带收件人名字)是防泄露追踪的好方法,外发重要文件时强烈推荐。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 20:00:16

从 Prompt 到 Production:AI 生成 UI 的工程化落地路径

从 Prompt 到 Production:AI 生成 UI 的工程化落地路径 深度引言 设计师在 Figma 画布上勾勒出一组卡片组件的轮廓,转头对身旁的同事说:"让 AI 生成代码吧。"同事打开 Copilot,输入一段描述,三十秒后屏幕上…

作者头像 李华
网站建设 2026/7/10 19:59:04

2026年AI API中转平台能力对比报告:企业生产环境选型的关键考量

2026年AI API中转平台能力对比报告:企业生产环境选型的关键考量 随着大模型应用进入深水区,直接对接各模型官方API带来的成本攀升与集成复杂度,让AI聚合中转平台迅速成长为关键基础设施。对开发者和企业而言,挑选一个运行稳定、计…

作者头像 李华
网站建设 2026/7/10 19:58:35

MP2672A电池充电器与PIC18F85K90微控制器系统设计

1. MP2672A芯片深度解析与选型考量MP2672A是MPS公司推出的一款高度集成的开关电池充电器IC,专为双节串联锂离子电池设计。这款芯片在便携式设备电源管理领域具有显著优势,其核心功能远不止简单的充电管理。1.1 关键电气特性与工作参数该芯片工作输入电压…

作者头像 李华
网站建设 2026/7/10 19:58:10

5分钟快速上手:Citra 3DS模拟器完整使用指南

5分钟快速上手:Citra 3DS模拟器完整使用指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在电脑上重温经典的任天堂3DS游戏吗?Citra模拟器为你提供了完美的解决方案。这款功能强…

作者头像 李华
网站建设 2026/7/10 19:56:56

如何完美隐藏Xposed框架:3步实现终极系统伪装

如何完美隐藏Xposed框架:3步实现终极系统伪装 【免费下载链接】XposedHider 尽可能完美地隐藏 Xposed 项目地址: https://gitcode.com/gh_mirrors/xp/XposedHider 你是否在使用Xposed框架时,经常遇到金融应用限制转账、游戏应用封禁账号、企业应用…

作者头像 李华
网站建设 2026/7/10 19:56:36

支持源码私有化,垂直B2B定制厂商推荐

一、为什么B2B企业要做源码私有化? 市面通用SaaS系统依赖性极强。企业数据存储在第三方云端,核心业务数据存在泄露风险。通用系统功能固化,无法适配行业专属业务流程。 企业想要微调功能、对接内部系统,都会受到诸多限制。后续迭代…

作者头像 李华