PDF 元数据清除
发给别人的 PDF,正文里你可能什么都没写,但文件里往往藏着这些东西:文档标题、作者名、你用的软件和版本、创建时间、修改时间。 用 Word 或 WPS 导出的还会额外写一份 XMP 元数据,里面有公司名和设备型号。 这些字段在阅读器里点「文件 → 属性」就能看到,很多人从来没打开过那个面板。
这个工具做三件事:先把你文件里实际存在的元数据列出来,让你看见;再让你选清哪几类; 最后把输出的文件重新解析一遍,逐条报告还剩什么。第三件事是重点——大多数在线工具清完就让你下载, 清没清干净你并不知道。
上传 PDF
为什么「清完要复检」这件事值得单独讲
我拿一个自己造的测试文件验证过这个流程:一个 PDF 同时带 Info 字段和 XMP 流。 只删 Info 字典的话,用文本方式搜文件内容,作者名和软件名依然能在 XMP 里原样搜到。 而大多数在线「PDF 去属性」工具做的正好就是只删 Info。
所以这个工具下载前会再做一次 PDFDocument.load(),把输出文件当陌生文件重新读一遍,
拿 getTitle() / getAuthor() / getProducer() 和 Metadata 流存在性逐项核对,
结果直接打在页面上。你看到的「已清干净」是复检结果,不是我的承诺。
它清不掉什么(先说清楚,省得你白试)
| 内容 | 能不能清 | 说明 |
|---|---|---|
| 文档属性 / XMP | 能 | 本工具的主功能。作者、标题、软件、时间、公司名都在这里。 |
| 内嵌附件 / 书签 | 能 | 勾选后一并移除,附件是最容易夹带原文的通道。 |
| 正文里的可见文字 | 不能 | 那是内容不是元数据。正文里写了名字,清元数据不会让它消失,这个工具不负责改内容。 |
| 扫描件图像里的人脸/证件 | 不能 | PDF 里的图像就是图像,元数据清除动不了像素。 |
| 数字签名 | 不能(会跳过) | 已签名的 PDF 只要字节变化签名就失效。本工具检测到签名会直接跳过并告诉你,不假装成功。 |
| 加密(有密码)的 PDF | 不能 | 需要密码才能解。工具不会尝试绕过——绕过产出的文件容易内容错乱。请先用原软件解除密码。 |
顺序上的一个坑:先清元数据,再加签名
如果你打算把 PDF 发给需要签章的场景,顺序必须是先清元数据、再走签署流程。 反过来做,任何字节改动都会让签名校验失败,文件在对方那里会显示「签名无效」—— 这比元数据泄露更麻烦。工具跳过带签名的文件,就是为了不替你做这个错误决定。
关于「文件不上传」
页面里所有解析、删除、重新保存都由 pdf-lib 在你的浏览器里完成。库文件托管在本站
(/js/pdf-lib.min.js),不走第三方 CDN,所以连「有人打开了这个页面」这件事都不会外泄。
断网状态下,页面加载完之后功能照常可用。
这不是洁癖。会用到这个工具的文件,通常正是身份证、合同、简历、报价单、病历这一类—— 它们共同点是泄露了没法撤回。把这种文件上传到一个不知道谁在运营的服务器上, 本身就是比元数据更大的风险。