PDFNOTED:你给同事的批注,为什么对方客户能全看见
有个场景值得所有经常对外发 PDF 的人想一想:
你在合同上给法务批了一句"这条底线不能让",法务改完直接把文件发给了对方。对方打开文件,这条批注原样躺在上面。
这不是假设。批注是跟着文件走的,你没有主动删,它就在。
批注的三个业务风险
风险一:内部判断外泄
批注里写的东西,通常比正文更真实。正文是谈判口径,批注是内部判断——能接受到什么程度、哪一条其实可以让、对方的哪个说法我们不认可。
这类信息外泄的损害,比泄露一个电话号码大得多。
风险二:文件版本不受控
批注可以导出,也可以被别人继续添加。一份文件在多方之间流转几轮之后,你很难说清哪些批注是自己加的、哪些是对方加的。
在争议场景下,这份文件的证据效力会打折扣。
风险三:修订痕迹提示改动位置
即使你删掉了批注文字,修订痕迹本身还在。对方能看到"这里改过"——虽然看不到改了什么,但足以提示重点在哪。
为什么"隐藏批注"没用
很多 PDF 阅读器提供"隐藏批注"或"显示/隐藏注释"的选项。这只是显示层的开关,不是删除。
批注数据在文件的 /Annots 数组里,换个阅读器、或者用命令行一提取就出来了。
真正的删干净需要满足:
/Annots数组里对应的引用被移除/Popup(批注弹窗)这类附属对象一并处理- 增量更新产生的旧版本数据被处理掉
只做第 1 步,剩下的还可能被恢复。
处理完之后怎么确认
清理这类操作最怕的是"以为做了"。验证方法很简单:
# 看批注对象还在不在
strings 文件.pdf | grep -c "/Annots"
# 或者用 pdfinfo 对比前后变化
pdfinfo 文件.pdf
更稳妥的做法是用工具扫描一遍,确认输出为空。
我们自己的流程是:清理完强制重新解析一遍,确认目标内容真的不在了才报告成功。原因前面提过——PDF 里同一份内容可能存在多个副本,比如增量更新留下的旧版本,只处理表面那一层是不够的。
批注的另一面:它是有用的
说完风险,也要说清楚批注本身是好的东西。
对外发之前要清理,但在内部协作时,批注恰恰是最高效的沟通方式——意见直接落在具体条款上,不用再写"第 3 条第 2 款那个地方"。
关键是区分阶段:
| 阶段 | 批注的作用 | 该做什么 |
|---|---|---|
| 内部审阅 | 高效沟通 | 随便加 |
| 定稿 | 确认修改点 | 逐条核对 |
| 对外发出 | 无 | 必须清理 |
问题从来不出在"用了批注",而是出在"忘了清理就直接发了"。
一个可以照抄的顺序
内部审阅加批注
→ 定稿时逐条核对批注是否已落实
→ 导出前统一清理批注 + 元数据
→ 重新解析验证
→ 对外发送
中间那步"统一清理"可以手工做,也可以用工具一次做完。我们的工具在这一步会同时处理元数据和隐藏文字,因为这三样通常是一起出现的。

一句话
批注不是安全问题,带着批注对外发文件才是。
利益相关说明:PDFnoted(pdfnoted.com)是我自己在做的产品,做 PDF 清理和合同审查这块。批注清理属于免费且不需要登录就能用的功能之一。
浙公网安备 33010602011771号