[NTG-pdftex] Deterministic PDFs (switch to disable addition of timestamps and random ID nonces)

Markus Kuhn Markus.Kuhn at cl.cam.ac.uk
Fri Jun 26 11:48:16 CEST 2015

> 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.

> The workaround is to overwrite the two hexadecimal string
> of the two ID values with a deterministic hex string of the
> same length. The ID key can be found at the end of the PDF
> file and, the dictionary is uncompressed (trailer without
> object compression of PDF 1.5 or the dictionary of type XRef
> in case of object compression.

I need a pure-pdfTeX solution: version-controlled setups
may have users on different operating systems (say Linux + Windows + OS X),
some of which have no other scripting language than pdftex installed.

If pdftex could be patched such that e.g.

   \pdfinfo{/CreationDate null}
   \pdfinfo{/ModDate null}
   \pdftrailer{/ID null}

suppress the addition of all these dictionary entries,
that would be perfect, and would not require the addition
of any new primitives. It would just be an improvement to
the behaviour and PDF-compatibility of two existing primitives.

If nulling-entries-away worked generally for all pdfinfo
entries, Icould then even decide to add e.g.

   \pdfinfo{/Producer null}
   \pdfinfo{/PTEX.Fullbanner null}

such that the pdftex and Tex Live version numbers

   /Producer (pdfTeX-1.40.14)
   /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1)

would disappear as well. After all, these version numbers are
also kind-of timestamps, with just much lower (~annual?)


Markus Kuhn, Computer Laboratory, University of Cambridge
http://www.cl.cam.ac.uk/~mgk25/ || CB3 0FD, Great Britain

More information about the ntg-pdftex mailing list