在 ConTeXt 中更改 PDF 时间戳

在 ConTeXt 中更改 PDF 时间戳

灵感来自对应问题对于 pdftex,我想在 ConTeXt 中的元数据中设置 pdf 时间戳。

到目前为止不起作用的是:

% Set the luatex variables, applies only to \date
\ctxlua{
pt=string.gmatch('2018-04-22','[^-]+');
tex.year=tonumber(pt());
tex.month=tonumber(pt()); % month is ignored by ConTeXt
tex.day=tonumber(pt());
}

% set the PDF metadata, but the time isn't set.
\setupinteraction[state=start, title={This gets shown}, date=2018-04-22T15:42:12+01:00]

\starttext
\date % April 22, 2018
\stoptext

这里设置的数据显示正确,但是pdf时间戳还是当前日期。

答案1

经过一番查看后lpdf-ini.lualpdf-xmp.luaback-ini.lua找到了一种更改元数据的方法:

% Change PDF metadata timestamp, 
\startluacode
local metadata = lpdf.getmetadata();
metadata['time'] = '2018-04-22T15:42:12+01:00';
\stopluacode

这不会影响\currentdateTeX 的设置,因此您可以拥有不同的日期\date和元数据。日期格式是 PDF 特有的,因此这会破坏其他输出格式。

相关内容