📦 写在前面

平时处理 PDF 真的是一堆零零碎碎的破事儿 😩

  • 有的文件设了密码打不开 🔒
  • 角落里或者整页都飘着水印 💧
  • 需要把关键词、日期一次性改好 📝
  • 还有合并、拆分、压缩这种高频操作 📎

在线工具嘛,要么限制页数,要么担心隐私;Adobe 又太重太贵。

于是我干脆自己写了一个 PDF 全自动批量处理工具箱,Python + 桌面 GUI,本机跑,不连网,敏感文件完全不出电脑。

可以多文件排队、勾选组合功能、后台默默干活,非常适合批量处理合同、扫描件、报告之类的。

在这里插入图片描述

🛠️ 工具能干啥?13 项功能一览

我把功能按三大类排好,勾选后会按固定的流水线顺序自动执行:

先去水印/解密,再做文字编辑,最后是加密、压缩这些收尾动作。

💧 一、水印与背景清理(4 项)

这里原本有图示,我直接列一下功能:

  • F1:删除角标水印(支持自定义关键词)
  • F2:清除全页背景水印
  • F3:去除扫描件的灰色底纹
  • F4:抹掉指定区域的固定文字或图标

✏️ 二、文字编辑(4 项)

可以批量改字、改日期、统一页眉页脚:

  • F5:批量查找替换文本(支持正则)
  • F6:修改文档属性标题/作者/主题
  • F7:插入页眉或页脚文字
  • F8:更新特定日期格式(如 2023→2024)

🔐 三、权限与格式(5 项)

最后阶段搞权限、合并拆分和压缩:

  • F9:去除打开密码
  • F10:添加打开密码或权限密码
  • F11:按页数拆分(例如每 5 页一个文件)
  • F12:多文件合并成一个 PDF
  • F13:压缩体积(可调质量)

🖥️ 界面 & 使用(3 分钟上手)

桌面程序长这样,采用了 三栏布局,套了个 ttkbootstrap 主题,颜值还行吧 😎

  • 左边 👈:添加 PDF 文件/文件夹,支持拖放。还可以点「扫描第一个文件」预览前 10 页里所有文字块(字号、颜色、倾斜、内容),方便你去配置水印关键词。
  • 中间 🎛️:按分类勾选要用的功能,填上参数(替换词、密码、压缩质量、拆分页数、F12 的关键词标签等等)。
  • 右边 📋:实时日志滚动 + 进度条,跑起来心里有数。处理完的文件都在 ./output 目录,临时文件扔 ./temp,不乱。

典型流程就三步

  1. 加文件
  2. 勾选需要功能,把参数填好
  3. 点「开始处理」
    1.

⚠️ 注意:如果你勾了「合并」且选了多个文件,程序会走专门的合并逻辑;其他情况下,功能会按流水线对每个文件串行叠加,上一步的输出就是下一步的输入,非常顺畅。

⚙️ 技术实现:为啥要用“多库组合”?

单一一个库真的很难同时搞定「改结构 + 精确定位文字 + 区域涂抹」这些场景,所以我让几个库分工合作:

  • pikepdf:负责底层 PDF 结构修改,比如解密、加密、删除图层、改属性。
  • pdfplumber:专门做文字提取和定位,拿颜色、字号、坐标,精准找到要替换的词或水印位置。
  • PyMuPDF(fitz):用来做页面级的渲染清理、删除大矩形、涂抹区域等,补足前两个库的短板。
  • reportlab:生成替换后的新文字层或页眉页脚。
  • Pillow:处理图像类的底纹、扫描件背景。

流水线设计run_pipeline):

  • 按照固定的 EXEC_ORDER 顺序跑你勾选的功能。
  • 每一步成功就写出临时 PDF,最后复制到 output 文件夹。
  • 某一步如果失败,会记日志但尽量不中断整批,稳稳的。
  • F11 拆分后会单独输出到一个目录,不会和单文件最终复制逻辑冲突。

全部在本地跑,不依赖任何云服务,特别适合处理那些不想外传的文档。

🐍 环境 & 运行

依赖我都写在脚本头部注释了,直接 pip 一把梭:

pip install ttkbootstrap pikepdf pdfplumber reportlab pillow PyMuPDF

如果需要拖放功能(把文件直接拽到窗口里),再装一个:

pip install tkinterdnd2

然后运行:

python pdf-tools-v5.py

首次运行会自动帮你建好 outputtemp 两个目录,省心~

💡 几个实用小细节

  1. 🔍 F12 预览:扫描第一个文件时,会把“字号超大、倾斜、不是纯黑”的文本标成「特殊」,跟正文区分开,避免你把水印词配置错。
  2. 🎨 F1 保留颜色:替换文字时会从字符级读取原来的 RGB / 灰度,这样改完字不会全变成黑色,保持原来配色。
  3. 🧹 F5 多层清理:不光是删图层,连注释、表单、内容流里藏的大矩形都一起干掉,对付复杂盖章 PDF 特别有效。
  4. 🍎 macOS 兼容:Checkbutton 用了字符串 bootstyle,避免某些 Mac 系统崩溃。
  5. 🧵 后台线程 + 日志队列:界面不卡死,处理大批量文件时也能看到实时进度和每一步的日志,心里有底。
    1.

🎯 适用场景 & 一点注意

👉 适合这些活儿:

  • 批量去掉角标、全页水印
  • 统一改公司名、日期
  • 解密后归档
  • 合并扫描件
  • 按页数拆分
  • 体积压缩

基本上法务、行政、运维、开发小伙伴都会用得到,所有操作都在本地完成,不担心泄密。

📣 小结

pdf-tools-v5.py 这个小工具,把 解密 → 去水印/底纹 → 改字/页眉页脚 → 加密/压缩/合并拆分 这一整条链都收进了一个桌面工具箱里。

pikepdf + pdfplumber + PyMuPDF 组合拳,解决了“结构编辑”和“文字精确定位”两大难题。

如果你想二次开发,照着 process_F1~process_F13FUNC_MAP 往里面加新功能就行,流水线顺序在 EXEC_ORDER 里随便调,扩展起来很方便~

需要源码或者想自己改着玩的话,评论区告诉我,我整理下放出来 😄

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐