先说结论
打开 PDF 涂黑,把文档放进去,打上要消失的词,勾上你确实要的那些,按「拿掉」。字会从绘制这一页的指令里删掉,同样的词也会从书签、批注、表单域和文档属性里拿走,而做好的文件在交给你之前,会当着你的面重新打开、重新搜一遍。
下面所有内容都在说,为什么最后那半句才是要紧的,以及怎么看出你手头在用的那个工具能不能说出同样的话。
这里说的是哪种失误
在 PDF 阅读器里给一个姓名画一个黑块。你看见的是一个盖着黑块的姓名。而多数阅读器存下来的,是一份含着那个姓名的文档,外加一个另存的方块,它有位置、有大小、有颜色。
这样画出来的方块是一个批注:一个有位置的对象,存在页面旁边,而不是页面里面。它下面的文字分毫未动。谁把那块区域选中按复制、谁拿任何一个文本提取器过一遍、谁把文件在一个批注画法不同的程序里打开,姓名就回来了。屏幕上没有任何东西能把它跟真正的涂黑区分开,而这恰恰是为什么这种事在雇着律师的机构里也一再发生。
它让法院文书、情报评估、合同,以及 2025 年 12 月美国司法部大批文件里被涂黑的姓名公之于众,而那些姓名在公布后几小时之内就被读了出来。套路每次都一样:方块是批注,而批注从来就不是文字。
真正的涂黑做的是什么
PDF 的一页是一串指令:设这个字体,把笔挪到这里,画出这些字形。页面上的词只存在于一个地方,就是这些绘制指令的操作数:
BT /F1 12 Tf 72 700 Td (致张伟先生) Tj ET 把这个姓名涂黑,意思是把那些字符从那条指令里删掉,再把这一页写回去。此后没有什么可以恢复,不是因为文件藏得好,而是因为那些字符不在文件里。这里没有哪个方块底下还压着东西,因为底下什么都没有。
有一样东西必须放回去,不然结果一眼就看得出不对。文字是靠一支笔在页面上往前推着画出来的,所以删掉五个字符,就会把这一行剩下的部分往左拽五个字符:表格的列不再对齐,合计滑到了别的表头下面。一个把这件事做对的工具,会量出被删部分本该让笔前进多远,再把那个距离作为一条字距指令放回去,而那条指令只挪笔,不画任何东西。
那个黑块,如果有的话,是之后画在一处早就空了的位置上的。它是给读文档的人的一点礼貌,是「这里拿走过东西」的记号,而不是涂黑本身。一句话就能说清这个区别:真的涂黑里,方块是装饰;假的涂黑里,方块就是涂黑。
词藏身的四个地方,而它们都不是页面
这一段专治那些前半截做对了的人。一份 PDF 同时在好几个地方带着文字,而阅读器会把它们全都显示、搜索、复制出来。把姓名从页面上拿掉、却留在其中任何一处,就不算拿掉。
- 文档属性。标题、作者,以及这份文件是从哪个文件导出的。一份从页面上删掉了姓名、属性里却还写着
张某_和解稿3.docx的文档,没有被涂黑。同样的信息通常还在一个 XMP 包里存了第二份,那个也得走。 - 书签。阅读器侧边那份目录,是一串带着页码的标题,而标题是一行文字,页面上的任何东西都管不着它。
- 表单域和批注。有人在表单里填的内容会存两遍:一遍是那个域的值,一遍是阅读器画出来的外观。两遍都得走。一张便签带着它的正文,也带着写它的人的名字。
- 替换文本。PDF 可以声明某一串字形其实「拼的是」另一样东西,好让连字或者行末断开的词,按它代表的那个词被复制走。这意味着一份文档可以显示一样、在你按 Ctrl+C 时递给你另一样,而一次只拿掉了被画出来那部分的涂黑,会把整句话原封不动地留给任何一个选中这一段的人。
附件是第五处。一份 PDF 可以在自己内部装下整个的别的文件,而你对页面做什么都碰不到它们。
三十秒检查一个文件
任何你要发出去的东西都这么过一遍,不管它是哪个工具做的。这是那个能把已知的每一次失误都逮住的检查。
- 打开做好的文件,按 Ctrl+F(Mac 上是 Cmd+F)。搜你拿掉的那个词。真的涂黑什么都搜不到。要是阅读器跳到了一个黑块上,那个词还在里面,方块只是压在它上面。
- 把涂黑的那块区域选中复制。在方块上拖过去,按 Ctrl+C,粘到任何一个文本框里。只要有东西粘出来,你就是从另一头逮住了同一个失误。
- 把整份文档选中,也复制一遍。Ctrl+A 然后 Ctrl+C,粘到任何一个文本编辑器里,读一读出来的东西。这一条在三条里远远最有用,因为它把文档按一个文本提取器看到的样子摊给你,其中还包括你压根不知道存在的文字,而这在扫描件上很常见。
- 看看属性,多数阅读器里是「文件 → 属性」,再看看书签那一栏。这两处都是一次在页面上做得完美的涂黑之后,姓名照样活下来的地方。
PDF 涂黑会替你跑其中第一条和第三条,并且把数量给你看。因为一个工具声称自己拿掉了什么算不上证据,而在做好的文件里搜一遍算。
扫描出来的文档是另一回事
扫描件是一页纸的照片。上面的词是像素,不是文字,你在文字层上怎么折腾都碰不到它们,因为要么根本没有文字层,要么有的那一层是在描述这张图,而不是这张图本身。
如今多数扫描仪和 PDF 工具会在图上面加一层看不见的文字,由光学字符识别写出来,好让这一页可以搜索。那一层是真文字,拿得掉。也值得拿掉:搜索、复制,以及每一个自动读文档的系统,找到的正是它。图一点不变,对着页面看的人,那些词照样清清楚楚。
所以对一份扫描件,诚实的顺序是这样:先把词从文字层里拿掉,再单独处理那张图,也就是去覆盖像素。做这件事的是图片涂黑,而它旁边那篇指南讲了为什么对文字来说,模糊或者马赛克都不够。
为什么不干脆打印出来再扫一遍
因为这么做确实管用,代价是别的一切。把涂黑过的一页打印出来再扫回去,确实得到一份没有文字层可漏的文档,同时也得到一份谁也搜不了、任何屏幕阅读器都读不了、大小翻五到五十倍、清晰度全看办公室扫描仪心情的文档。这一招还建立在一个前提上:这一页是照着它看上去的样子打印的。批注可以被标成只在屏幕上显示、不随纸打印,而如果你那个黑块正好是这一种,打印机吐出来的那张纸上就印着姓名。
「拼合成图像」也是同一个道理,有些工具把它当成涂黑来提供。它把每一页变成这一页自己的照片。如果那些词是被盖住而不是被删掉的,那么现在这层盖子确实永久了,但文档的其他一切也跟着一起没了,而你发出去的是一份谁也没法用的文件。
为什么这是最不值得上传的一件事
一个涂黑服务必须拿到还没涂黑的那份文件。整笔交易就是这样:私密的那一版先完完整整地到了那边,而留在别人硬盘上的也正是那一版。隐私政策上怎么写都好,这个先后顺序没得辩:你小心对待的那份文档,正是你亲手交出去的那份。
再想想人们都拿什么去涂黑,事情比听上去更糟:证人证言、诊断书、要交给房东的银行流水、带着一个客户名字却要发给另一个客户的合同、写着家庭住址的申请材料。那些才是这里说的文档,而这恰恰是为什么处理它们的工具,另一头不该有服务器。
本站这个涂黑工具里的一切都发生在你自己的浏览器里:文件在你的机器上读取、修改、写出、核对,而你搜的那些词也从不离开这个标签页。断网之后它照样能用,而这正是「什么都没往外送」的最简单证明。一次上传实际上意味着什么,看上传文件安全吗。