PDF 元数据修改

查看并改写 PDF 里的标题、作者、主题、关键词、创建程序、生成程序和时间戳,顺手把 XMP 元数据、嵌入字体这些容易泄露信息的地方一并列出来。

文件只在浏览器里读取和写入,不会上传到任何服务器。带打开口令的 PDF 请先去掉口令再传上来。

选择 PDF 后查看它的文档信息

使用说明

PDF 里的「文档信息」实际上有两条线。一条是信息字典,也就是文件尾部的 Info 字典,里面就是标题、作者、主题、关键词、创建程序、生成程序、创建时间、修改时间这八个键,阅读器右键属性里看到的大多是它。另一条是 XMP,是后来补上的 XML 格式元数据,能表达更复杂的结构,Adobe 系列、扫描仪、手机导出都爱写它。本页读的时候两份都会展示,写的时候只改信息字典,XMP 原样留在文件里。两份都有值又互相矛盾时,阅读器显示哪一份由它自己决定,这也是「明明改过标题却还是旧值」最常见的原因。

时间字段要特别注意口径。PDF 规定日期写成定长字符串,形如 D:20240305102030,后面跟时区,可以写成 Z 表示 UTC,也可以写成加八小时这样的偏移,甚至允许把秒、时、日整段省掉只写年份。本页会把这些写法都读出来,带时区时换算成你电脑所在时区显示,同时把原文贴在旁边供对照。遇到不符合规范的写法(比如出现二月三十日、月份是十三)不会瞎猜,也不会显示成 NaN,而是原样贴出来标注无法解析。改写时间时按你本机时区填即可,写入时会换算成 UTC 再存。

清空字段不等于匿名。本工具能改的只有信息字典这六个字段,文件里还有几处不归它管:每次增量保存留下的历史版本可能带着上一轮的作者名,注释、表单域、附件的属性里常有作者字段,数字签名里更是直接带着签名人的证书信息。想知道自己的文件里还有哪些痕迹,可以把文件传进本页先看看 XMP 里的自定义字段和嵌入字体名,这些常常比信息字典更能说明文件是谁做的。要彻底清理,唯一稳妥的办法是把页面渲染成图片再重新生成一份 PDF,文字会变成图形,代价是不能再选中、搜索和复制,这份工作可以用PDF 转图片加图片转 PDF完成。

嵌入字体名也是一条常被忽略的线索。字体被嵌进 PDF 时会带上名字,做了子集化还会加六位大写字母前缀,比如 AAAAAA+某某字体。这个名字既可能暴露你用什么软件排版、需要什么字库,也可能涉及商业字体的授权问题。本页把文件里登记过的字体名、类型和是否真的嵌了字形一起列出来,检查隐私和排查「换个电脑打开变成方框」都能用上。

改写时会用 pdf-lib 重新序列化整份文件,对象顺序、压缩方式、交叉引用表都会重排,所以结果体积通常和原件不同,常见是变小一点。改完建议自己翻几页确认版式和内容没受影响。要处理表单域可以用PDF 表单填写,要逐张取出内嵌图片可以用PDF 图片提取,想给文件加口令用PDF 加密与解密,要压小体积用PDF 压缩。

常见问题

改完元数据,为什么阅读器里还显示旧标题?

因为 PDF 里有两份记录标题的地方:一份是文档信息字典,另一份是 XMP 元数据包,后者是 XML。本页改写的是信息字典,XMP 原样保留,于是阅读器看到两份不一致时,多数会优先显示 XMP 里的旧值。要想两边一致,只能先把整份文档栅格化重做一遍,或者用原软件重新导出一份文件。

清空元数据后能保证查不出作者吗?

不能保证。本页只改文档信息字典里的六个字段,文件里还有几处不归它管:每次增量保存留下的旧版本可能带着上一轮的作者名,注释和表单域的作者字段、附件的属性、数字签名里的证书信息也都不在信息字典里。要彻底清理,正确做法是把页面渲染成图片再重新生成 PDF,文字会变成图形,代价是不能再选中和搜索。

创建时间和修改时间显示的时间为什么和原文不一样?

PDF 里存的是定长字符串,形如 D:20240305102030 后面跟时区,可能写 Z,也可能写加八小时这样的偏移。带时区时本页会换算成你电脑所在时区显示,所以原文和显示值可能差几个小时,这是正常的。原文同时会贴在下面一行,可以自己对照。

日期上写着无法解析是什么意思?

说明文件里那串日期不符合 PDF 规范的写法,或者月份、日期超出了合法范围,比如出现 20240230 这种二月三十日。这种情况下本页不会瞎猜,也不会显示成 NaN,而是把原文原样贴出来标注无法解析。改写日期时会直接写新的值,原来的脏数据就被覆盖掉了。

保存后文件体积为什么会变?

保存时用的是 pdf-lib 重新序列化整份文件,对象顺序、交叉引用表、压缩方式都会重排一遍,所以结果体积通常和原件不同,常见是略微变小,也有变大的情况。页面本身会猜这个差异,但内容、页数、图片都不会丢,改完翻几页确认即可。

关键词为什么是一整串,不是分开的标签?

PDF 的关键词字段就是一个纯文本字符串,规范里没有规定用逗号还是分号分隔,惯例是用逗号加空格。本页读出来是什么就显示什么,写回去也不改变你输入的分隔方式,所以填中文顿号、英文逗号、空格都能用,只是不同阅读器在文档属性里给你的观感不一样。

带密码的 PDF 能改元数据吗?

带打开口令的不行,解析器读不出内容,会提示先去掉口令。只带权限口令(能打开但不能打印或复制)的文件通常能改,因为内容能正常解出来。去口令可以用本站的 PDF 加密与解密工具。

相关:PDF 加密与解密

嵌入字体名也算隐私泄露吗?

算一条弱线索。函数子集化之后字体名会带六位大写字母后缀,但基础名字仍在,比如某某公司的定制字体、某套商业字库的名字都会留在文件里,配合其他信息能缩小范围。字体名同时也是版权线索,正文里应该嵌的商业字体缺了字形,收件人打开就会变成乱码或方框。