You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PDF的Document Trailer ID相关问题:双段构成与命令行提取方法

PDF Trailer ID相关问题解答

1. 可获取Trailer ID的命令行工具

无需手动用编辑器搜索,以下工具可直接提取PDF的Trailer ID:

  • qpdf:通过--show-trailer参数输出Trailer内容,配合过滤工具提取ID:
    qpdf --show-trailer yourfile.pdf | grep -A2 "/ID"
    
    输出会包含ID数组的两个十六进制字符串。
  • mutool(MuPDF工具集):使用show命令直接查看Trailer:
    mutool show yourfile.pdf trailer | grep "/ID"
    
  • pdftk:通过dump_data参数输出元数据,其中包含Trailer ID:
    pdftk yourfile.pdf dump_data | grep "ID"
    

2. Trailer ID两段内容的含义

PDF规范(PDF 32000-1:2008 第14.4节)明确规定,/ID是包含两个十六进制字符串的数组:

  • 第一个字符串是PDF首次创建时生成的标识符;
  • 第二个字符串是PDF最后一次修改时生成的标识符。
    LaTeX生成的PDF通常为一次性编译完成,无后续修改操作,因此两段内容会完全一致。

3. ID大小写差异的处理

PDF规范定义十六进制字符串的大小写等价,大小写差异仅为表示方式不同,不影响值的相等性。校验时统一转换为小写或大写即可,例如用tr命令处理:

# 将LaTeX生成的大写ID转小写
echo "ABCDEF1234" | tr '[:upper:]' '[:lower:]'

转换后再与qpdf生成的小写ID对比即可。

4. SOURCE_DATE_EPOCH对qpdf的影响

qpdf默认不会根据SOURCE_DATE_EPOCH自动修改ID,若要实现和LaTeX编译器一致的可重现ID生成,需指定--deterministic-id参数,并配合--set-source-date-epoch:

qpdf --deterministic-id --set-source-date-epoch $SOURCE_DATE_EPOCH input.pdf output.pdf

这样生成的输出PDF会基于指定时间戳生成一致的ID,满足可重现编译需求。

内容的提问来源于stack exchange,提问作者user2609605

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:22:35