PDF元数据编辑完全指南

从 PDF 内部结构到元数据编辑工具,全面掌握 PDF 文档属性管理

PDF元数据的特殊性

与 Office 文档(.docx、.xlsx、.pptx)不同,PDF 文档的元数据存储机制更加复杂。一个 PDF 文件可能包含两套元数据系统:一套是传统的 Info 字典(Document Information Dictionary),存储在 PDF 文件的 trailer 中;另一套是 XMP(Extensible Metadata Platform)元数据,以 XML 格式嵌入在 PDF 文件内部。两者可以共存,但现代 PDF 标准(特别是 PDF/A)要求优先使用 XMP 元数据。

更复杂的是,PDF 元数据的具体支持字段因创建工具而异。Adobe Acrobat 创建的 PDF 通常包含丰富的元数据,而某些扫描仪或转换工具生成的 PDF 可能只有非常有限的元数据。此外,PDF 中的"创建时间"和"修改时间"字段往往与文件系统的文件时间戳不同,需要单独处理。

PDF元数据的内部结构

Info 字典

Info 字典是 PDF 1.0 时代就存在的元数据机制,位于 PDF 文件的 trailer 部分。它包含一组简单的键值对:

<<
  /Title (投标技术方案)
  /Author (智数融合)
  /Subject (XX项目技术方案)
  /Keywords (投标;技术方案;XX项目)
  /Creator (Microsoft Word)
  /Producer (Microsoft Word)
  /CreationDate (D:20260320143000+08'00')
  /ModDate (D:20260320160000+08'00')
>>

Info 字典支持的字段有限,但它是所有 PDF 阅读器都能识别的基础元数据。Creator 表示创建文档的源应用程序(如 Word),Producer 表示生成 PDF 的转换工具。

XMP 元数据

XMP(Extensible Metadata Platform)是 Adobe 提出的元数据标准,以 XML 格式嵌入在 PDF 文件中。相比 Info 字典,XMP 支持更丰富的字段和更复杂的结构:

<x:xmpmeta xmlns:x="adobe:ns:meta/">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
      xmlns:dc="http://purl.org/dc/elements/1.1/">
      <dc:creator>
        <rdf:seq>
          <rdf:li>智数融合</rdf:li>
        </rdf:seq>
      </dc:creator>
      <dc:title>
        <rdf:alt>
          <rdf:li xml:lang="x-default">投标技术方案</rdf:li>
        </rdf:alt>
      </dc:title>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>

PDF/A 标准中的元数据要求

PDF/A 是用于长期存档的 PDF 标准(ISO 19005),它对元数据有严格要求。PDF/A-1 要求所有元数据必须嵌入在 XMP 流中,且 Info 字典中的信息必须与 XMP 元数据保持一致。PDF/A-2 和 PDF/A-3 进一步放宽了部分限制,但 XMP 元数据仍然是指定性要求。

在对 PDF/A 文件进行元数据编辑时,必须同时更新 XMP 元数据和 Info 字典,并确保两者一致。如果仅修改其中一处,可能会导致 PDF/A 验证失败。专业的元数据编辑工具会自动处理这种同步。

PDF元数据编辑工具对比

工具 批量处理 XMP支持 PDF/A兼容 价格
Adobe Acrobat Pro有限✅ 完整高(订阅制)
PDFtk Pro✅ 命令行部分部分
ExifTool✅ 命令行需手动处理免费
MetaTool✅ 批量图形界面✅ 自动同步低(按次/包年)
Python (PyPDF2/pikepdf)✅ 需编程部分需手动处理免费

使用Python编辑PDF元数据

对于有编程能力的用户,可以使用 Python 的 pikepdf 库编辑 PDF 元数据:

import pikepdf
from datetime import datetime

with pikepdf.open("input.pdf", allow_overwriting_input=True) as pdf:
  with pdf.open_metadata() as meta:
    meta["dc:title"] = "投标技术方案"
    meta["dc:creator"] = "智数融合"
    meta["dc:subject"] = "XX项目技术方案"
    meta["pdf:Keywords"] = "投标;技术方案;XX项目"
    meta["xmp:CreateDate"] = "2026-03-20T14:30:00+08:00"
    meta["xmp:ModifyDate"] = "2026-03-20T16:00:00+08:00"
  
  # 同时更新Info字典
  pdf.docinfo["/Title"] = "投标技术方案"
  pdf.docinfo["/Author"] = "智数融合"
  pdf.save("output.pdf")

使用脚本方法的好处是灵活可定制,但缺点是需要一定的编程知识,且对于非技术人员来说使用门槛较高。此外,对于批量处理大量 PDF(数百个文件),脚本的执行效率和处理错误处理可能不如专业工具。

使用MetaTool批量编辑PDF元数据

MetaTool 文档属性修改器提供了图形化的 PDF 元数据编辑功能,无需编程即可完成批量修改:

  1. 添加 PDF 文件:将需要修改的 PDF 文件拖入 MetaTool 窗口,或使用"添加文件"按钮批量选择。
  2. 设置元数据值:在编辑面板中填写目标字段值。MetaTool 会自动识别 PDF 的可用字段(包括 Info 字典和 XMP 字段)。
  3. 配置时间策略:对于创建时间和修改时间,可以选择固定时间、递增偏移或随机范围等策略。
  4. 执行批量修改:点击"批量修改",MetaTool 会自动同步更新 Info 字典和 XMP 元数据,确保 PDF/A 兼容性。
  5. 验证结果:修改完成后自动回读验证,确认元数据写入成功。

PDF元数据编辑的注意事项

  • PDF/A 文件:修改 PDF/A 文件的元数据时,必须同时更新 Info 字典和 XMP,并保持两者一致,否则可能导致 PDF/A 验证失败。
  • 加密 PDF:加密或受密码保护的 PDF 需要先解密才能修改元数据。
  • 数字签名:已数字签名的 PDF 修改元数据会导致签名失效,需要先移除签名或重新签名。
  • 日期格式:PDF 中的日期格式为 D:YYYYMMDDHHmmSS+HH'MM',编辑时需要注意格式正确性。
  • 编码问题:中文字符在 PDF 元数据中需要使用正确的编码,否则可能出现乱码。
  • 备份原始文件:在批量修改前务必备份原始 PDF 文件,以防意外。专业工具通常支持撤销或保留原文件。

MetaTool 一站式处理 Office + PDF 元数据

支持 Info 字典和 XMP 双模式同步编辑 · 批量处理 · 写后验证

免费下载试用

相关产品

文档属性修改器

批量修改 Word/Excel/PPT/PDF 元数据

查看详情

双层PDF转换工具

扫描件转可搜索双层PDF

查看详情
元数据字段