我从 LaTeX 源文件构建 PDF 文档,作为静态 Dwebsite 生成,但每次运行 pdflatex 都会输出一个文件,该文件的哈希值会不同IFPS 内容 ID。这会触发根 CID 的虚假再生。是否可以pdflatex
生成与之前运行二进制等效的 PDF(假设输入文件未更改),以便 PDF 输出哈希为相同的 CID?
pdflatex 手册页没有列出任何看似相关的选项。每http://theoval.cmp.uea.ac.uk/~nlct/latex/pdfdoc/pdfdoc/pdfdoc.html,我在 LaTeX 文件的顶部添加了类似这样的内容:
\pdfinfo{
/Producer (pdfTeX)
/Author ()
/Title ()
/CreationDate (D:20040502195600)
/ModDate (D:20040502195600)
/PTEX.Fullbanner (Generated with pdfTeX)
}
比较 hexdiff 中的文件会显示 /ID 属性中的差异,该属性看起来像 GUID。该属性似乎无法通过 \pdfinfo 块进行修改。是否有任何方法可以硬编码或禁用该属性的生成?
答案1
您可以通过设置环境变量来设置可重现的行为SOURCE_DATE_EPOCH
,并FORCE_SOURCE_DATE
参见texdoc pdftex
第 4 节。
SOURCE_DATE_EPOCH
应该是你想要修复日期的自 1970 年以来的秒数,并且FORCE_SOURCE_DATE
应该是 1
您还可以从 tex 文档中控制这些字段,例如\pdftrailerid
控制末尾的 id 并 \pdfsuppressptexinfo=-1
抑制信息信息的打印。