一、先搞清楚:PDF 加密有两种
很多人以为”加密的 PDF”都一样,其实分两种,处理难度天差地别:
| 类型 | 英文名 | 作用 | 能否去除 |
|---|---|---|---|
| 打开密码 | User Password | 不输密码根本打不开 | ❌ 难,没密码就得暴力穷举 |
| 权限密码 | Owner Password | 能打开,但禁止复制/打印/编辑 | ✅ 容易,几行代码搞定 |
日常遇到的”能看但不能复制文字”的 PDF,几乎都是第二种。
二、为什么”禁止复制”那么容易去掉
这是 PDF 加密设计上的一个根本弱点:
- PDF 内容是用一个”加密密钥”加密的,而这个密钥本身就存在文件里。
- 如果设了打开密码,密钥会被密码锁住——没密码算不出密钥,所以打不开(这种才是真加密)。
- 但”禁止复制”的文件没设打开密码,等于用空密码——任何软件都能直接算出密钥,正常显示内容。
- 那个”禁止复制”的标志,只是一个写在文件里的”请求”:「请阅读器不要让用户复制」。
关键:这个限制纯靠阅读器自觉遵守,文件本身并没有真正锁住文字。 Adobe、预览这些软件”讲规矩”,看到标志就把复制按钮灰掉而已。
三、pikepdf 怎么去除(就两步)
1 | import pikepdf |
- 第①步:文件没有打开密码,所以空密码就能开,拿到完全解密的内容。
- 第②步:重新存成一个完全不加密的新 PDF——既然不加密,”禁止复制”的标志自然不存在了。
本质不是”破解”,而是”解密后重新存一份干净的”。内容一个字没改,只是扔掉了那个没有约束力的”请勿复制”牌子。
四、批量处理(整个文件夹)
1 | import os, pikepdf |
安装:pip install pikepdf
五、重要提醒
- pikepdf 去不了”打开密码”。 如果一个 PDF 不输密码连打开都不行(真·加密),pikepdf 也无能为力,只能靠知道密码或暴力穷举。
- pikepdf 不擅长提取文字。 它是改 PDF 结构的工具(去权限、合并、拆分)。要提取文字用 PyMuPDF / pdfplumber / pdftotext。
- 版权与合理使用。 去除复制限制应仅用于自己合法拥有的文件(如方便自己查词、做笔记)。破解他人版权材料的保护并传播,属于侵权。
一句话总结
“禁止复制”的 PDF 没有真正的打开密码,只有一个靠阅读器自觉遵守的限制标志。pikepdf 用空密码打开、不加密地重新保存一遍,这个标志就没了——这是”去权限”,不是”破密码”。
本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 镜湖!
评论


