abox.tools

语言: 简体中文

PDF 都记得些什么

记得的比页面上多。一份 PDF 通常带着作者的名字、生成它的软件、它变成 PDF 之前是哪份文档。要是用一种很常见的方式编辑过,还带着自己的每一个旧版本,删掉的也在。这些没有一样会显示在屏幕上。

以 Markdown 查看

先说结论

PDF 不是页面的照片。它是个箱子,页面只是货物里拿出来展示的那部分。页面四周,这个格式还留着好些位置:一块文档信息,一份同样内容的 XML 副本,批注,表单数据,附带的文件。还有,经由一种很常见的保存改动的方式,文档完完整整的旧版本,一层层压在当前这版下面。

这些都不是毛病。每一样都是为一件说得通的事设计的,在一个单位内部,多数无害,甚至有用。麻烦出在过境:PDF 离家的那一刻,发给对方当事人、发上邮件列表、进了公开卷宗,它记得的一切都跟着走,而它记得的东西,哪一页都不显示。人们核对的是文档说了什么,寄出去的是文件装了什么。这是两回事。

名牌:/Info 和 XMP 包

每份 PDF 都可以带一部文档信息字典:作者、标题、创建和修改日期、创建与生成它的程序名。多数文件还带着同一批事实的第二份、更厚实的副本,以内嵌 XML 的形式,名叫 XMP。两者都不随页面显示,两者都只隔着一个属性面板。

这些值是自动填上的,漏就漏在这儿。作者通常是装操作系统时用的账户名,一个真实的全名,出现在写的人自以为匿名的文档上:求职信、评审意见、投诉、报价。标题通常是 PDF 导出前那份文档的文件名,于是 草稿v7-法务顾虑.docx 就活在那份本该取代它的体面 PDF 里。生成器那一行标出软件的年头,日期拆穿官方说法。机构发布的 PDF 在这一块里都招了些什么,已经有人写出了整篇的研究。

没人要的还原:增量保存

箱子里最锋利的一件,恰是这个格式最得意的一件。PDF 允许增量更新:编辑器不必重写文件,可以把改动续在末尾,前面的一切原封不动。阅读器从文件尾部读起,显示最新的版本。旧版本还在,一个字节不差,就在同一个文件里。

追加式保存快,也抗崩溃。它同时意味着,这样编辑过的文档装着自己的履历。“删掉”的文字没有走,只是被盖过去了。找回它,把文件按最后一次追加之前的样子读一遍就行。在一个增量保存的编辑器里往名字上拉一个黑方块,得到的文件里那个名字有两份:一份在方块底下,一份在履历里。涂黑那一页讲过的败法,在这儿翻倍。

药方是彻底重写:打开文件,只留当前版本真正用到的东西,写一份没有过去的新文件。这里的 PDF 压缩工具从构造上就是这么做的。重写没法不丢下履历,而且这个工具会把丢下的过期材料记进它的体积明细。想知道你的文件到底有没有履历,看那份明细也是最省事的办法。

货舱:批注、表单、附件、图层

记性的其余部分平常得多,照样漏:

每一样都是页面不给看的数据,装在一份人人只看页面的文件里。

把 PDF 不带记性地发出去

贯穿这一切的规律:什么能留下来,取决于文件是怎么写的。所以解法是让它过一遍写起来健忘的东西,在你自己的机器上。文档的履历,恰恰是最不该传到陌生人服务器上的那样东西,这层道理上传那一页讲了个透。这个站有三个写 PDF 的工具,三个都是冲着把记性关在门外造的:

验收的法子和泄漏的路子正好对称:审文件,别审页面。打开属性面板,读读还剩什么;在原始文件里搜一个删掉的词;看看压缩工具的明细,瞧瞧你的文档一直背着些什么。一份没有记性的 PDF,落到谁手里都无可招认。