abox.tools

語言: 繁體中文

PDF 都記得些什麼

記得的比頁面上多。一份 PDF 通常帶著作者的名字、產生它的軟體、它變成 PDF 之前是哪份文件。要是用一種很常見的方式編輯過,還帶著自己的每一個舊版本,刪掉的也在。這些沒有一樣會顯示在螢幕上。

以 Markdown 檢視

先說結論

PDF 不是頁面的照片。它是個箱子,頁面只是貨物裡拿出來展示的那部分。頁面四周,這個格式還留著好些位置:一塊文件資訊,一份同樣內容的 XML 副本,註解,表單資料,附帶的檔案。還有,經由一種很常見的儲存改動的方式,文件完完整整的舊版本,一層層壓在當前這版下面。

這些都不是毛病。每一樣都是為一件說得通的事設計的,在一個單位內部,多數無害,甚至有用。麻煩出在過境:PDF 離家的那一刻,發給對方當事人、發上郵件列表、進了公開卷宗,它記得的一切都跟著走,而它記得的東西,哪一頁都不顯示。人們核對的是文件說了什麼,寄出去的是檔案裝了什麼。這是兩回事。

名牌:/Info 和 XMP 包

每份 PDF 都可以帶一部文件資訊字典:作者、標題、建立和修改日期、建立與產生它的程式名。多數檔案還帶著同一批事實的第二份、更厚實的副本,以內嵌 XML 的形式,名叫 XMP。兩者都不隨頁面顯示,兩者都只隔著一個屬性面板。

這些值是自動填上的,漏就漏在這裡。作者通常是裝作業系統時用的帳戶名,一個真實的全名,出現在寫的人自以為匿名的文件上:求職信、評審意見、投訴、報價。標題通常是 PDF 匯出前那份文件的檔名,於是 草稿v7-法務顧慮.docx 就活在那份本該取代它的體面 PDF 裡。產生器那一行標出軟體的年頭,日期拆穿官方說法。機構釋出的 PDF 在這一塊裡都招了些什麼,已經有人寫出了整篇的研究。

沒人要的還原:增量儲存

箱子裡最鋒利的一件,恰是這個格式最得意的一件。PDF 允許增量更新:編輯器不必重寫檔案,可以把改動續在末尾,前面的一切原封不動。閱讀器從檔案尾部讀起,顯示最新的版本。舊版本還在,一個位元組不差,就在同一個檔案裡。

追加式儲存快,也抗崩潰。它同時意味著,這樣編輯過的文件裝著自己的履歷。「刪掉」的文字沒有走,只是被蓋過去了。找回它,把檔案按最後一次追加之前的樣子讀一遍就行。在一個增量儲存的編輯器裡往名字上拉一個黑方塊,得到的檔案裡那個名字有兩份:一份在方塊底下,一份在履歷裡。塗黑那一頁講過的敗法,在這裡翻倍。

藥方是徹底重寫:開啟檔案,只留當前版本真正用到的東西,寫一份沒有過去的新檔案。這裡的 PDF 壓縮工具從構造上就是這麼做的。重寫沒法不丟下履歷,而且這個工具會把丟下的過期材料記進它的體積明細。想知道你的檔案到底有沒有履歷,看那份明細也是最省事的辦法。

貨艙:註解、表單、附件、圖層

記性的其餘部分平常得多,照樣漏:

每一樣都是頁面不給看的資料,裝在一份人人只看頁面的檔案裡。

把 PDF 不帶記性地發出去

貫穿這一切的規律:什麼能留下來,取決於檔案是怎麼寫的。所以解法是讓它過一遍寫起來健忘的東西,在你自己的機器上。文件的履歷,恰恰是最不該傳到陌生人伺服器上的那樣東西,這層道理上傳那一頁講了個透。這個站有三個寫 PDF 的工具,三個都是衝著把記性關在門外造的:

驗收的法子和洩漏的方法正好對稱:審檔案,別審頁面。開啟屬性面板,讀讀還剩什麼;在原始檔案裡搜一個刪掉的詞;看看壓縮工具的明細,瞧瞧你的文件一直揹著些什麼。一份沒有記性的 PDF,落到誰手裡都無可招認。