[NTG-pdftex] Deterministic PDFs (switch to disable addition of timestamps and random ID nonces)
Heiko Oberdiek
heiko.oberdiek at googlemail.com
Fri Jun 26 16:10:41 CEST 2015
Hello,
On 26.06.2015 11:48, Markus Kuhn wrote:
>> On 6/26/2015 3:40 AM, Heiko Oberdiek wrote:
>> \pdfinfo{/CreationDate null}
>> \pdfinfo{/ModDate null}
>
> That still leads to
>
> /CreationDate null/ModDate null
>
> in the resulting PDF which is deterministic, but not what the ISO 32000
> standard recommends, as the entries are still present.
According to the PDF specification (PDF32000_2008.pdf), Table 317
"Entries in the document information dictionary", both values are
*optional* (except for ModDate, if PieceInfo is present).
The semantic of a null object as value for a key means, that
the entry is *not* present. Section 7.3.9 "Null Object":
| Specifying the null object as the value of a dictionary entry
| shall be equivalent to omitting the entry entirely.
Therefore this is valid PDF.
If you are unhappy with null values, then you can also specify
a deterministic date and time (whatever "deterministic" means
for a workflow). The format of the date string is described
in the PDF specification. Example:
% Set the deterministic values
% ----------------------------
\year=2015
\month=6
\day=26
\time=\numexpr 16*60\relax
% Format date string
% ----------------------------------------
% Format: (D:YYYYMMDDHHmmSSOHH'mm)
% Only the prefix "D:" and the year "YYYY"
% are mandatory, see PDF specification 7.9.4 "Dates"
\newcount\timehour
\newcount\timemin
\timehour=\time
\divide\timehour by 60
\timemin=-\timehour
\multiply\timemin by 60
\advance\timemin by \time
\edef\pdfdate{%
(D:%
\the\year % four digits
\ifnum\month<10 0\fi\the\month
\ifnum\day<10 0\fi\the\day
\ifnum\timehour<10 0\fi\the\timehour
\ifnum\timemin<10 0\fi\the\timemin
00)%
}
% If time zone is needed, then \pdfcreationdate
% can be scanned, it contains the time zone as
% it is available for pdfTeX.
% Set date entries
% ----------------
\pdfinfo{%
/CreationDate\pdfdate
/ModDate\pdfdate
}
% Result: /CreationDate(D:20150626160000)/ModDate(D:20150626160000)
Yours sincerely
Heiko Oberdiek
More information about the ntg-pdftex
mailing list