diff options
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx')
-rw-r--r-- | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx | 70 |
1 files changed, 58 insertions, 12 deletions
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx index f9fc15bf4d..e556f3575c 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx @@ -45,7 +45,7 @@ % }^^A % } % -% \date{Version 0.95r, released 2022-08-24} +% \date{Version 0.95s, released 2022-09-26} % % \maketitle % @@ -56,27 +56,27 @@ % \begin{macrocode} %<drivers>\ProvidesExplFile %<*dvipdfmx> - {l3backend-testphase-dvipdfmx.def}{2022-08-24}{} + {l3backend-testphase-dvipdfmx.def}{2022-09-26}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-testphase-dvips.def}{2022-08-24}{} + {l3backend-testphase-dvips.def}{2022-09-26}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} %</dvips> %<*dvisvgm> - {l3backend-testphase-dvisvgm.def}{2022-08-24}{} + {l3backend-testphase-dvisvgm.def}{2022-09-26}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-testphase-luatex.def}{2022-08-24}{} + {l3backend-testphase-luatex.def}{2022-09-26}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-testphase-pdftex.def}{2022-08-24}{} + {l3backend-testphase-pdftex.def}{2022-09-26}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} %</pdftex> %<*xdvipdfmx> - {l3backend-testphase-xetex.def}{2022-08-24}{} + {l3backend-testphase-xetex.def}{2022-09-26}{} {LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX} %</xdvipdfmx> % \end{macrocode} @@ -580,7 +580,7 @@ %<*pdftex|luatex> \clist_map_inline:Nn \c_@@_backend_PageResources_clist { - \pdf_object_new:nn {@@/Page/Resources/#1} {dict} + \pdf_object_new:n {@@/Page/Resources/#1} \cs_if_exist:NT \tex_directlua:D { \tex_directlua:D @@ -624,8 +624,8 @@ \prop_if_empty:cF { \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/##1} } { - \pdf_object_write:nx - { @@/Page/Resources/##1 } + \pdf_object_write:nnx + { @@/Page/Resources/##1 } { dict } { \pdfdict_use:n { g_@@_Core/Page/Resources/##1} } } } @@ -649,8 +649,11 @@ % \clist_map_inline:Nn \c_@@_backend_PageResources_clist { - \pdf_object_new:nn { @@/Page/Resources/#1 } { dict } - \hook_gput_code:nnn{shipout/firstpage}{pdf}{\pdf_object_write:nn { @@/Page/Resources/#1 } {}} + \pdf_object_new:n { @@/Page/Resources/#1 } + \hook_gput_code:nnn + {shipout/firstpage} + {pdf} + {\pdf_object_write:nnn { @@/Page/Resources/#1 } { dict } {}} } \cs_new_protected:Npn \@@_backend_PageResources:n #1 { @@ -1998,9 +2001,52 @@ %<*drivers> \pdfmanagement_add:nnn{Info}{CreationDate}{(D:20010101205959-00'00')} \pdfmanagement_add:nnn{Info}{ModDate}{(D:20010101205959-00'00')} + \AddToDocumentProperties[document]{pdfcreationdate}{D:20010101205959-00'00'} + \AddToDocumentProperties[document]{pdfmoddate}{D:20010101205959-00'00'} + \AddToDocumentProperties[hyperref]{pdfmetadate}{D:20010101205959-00'00'} + \AddToDocumentProperties[hyperref]{pdfdate}{D:20010101205959-00'00'} + \AddToDocumentProperties[hyperref]{pdfinstanceid}{uuid:0a57c455-157a-4141-8c19-6237d832fc80} } %</drivers> % \end{macrocode} +% +% \subsection{Uncompressed metadata object stream} +% The xmp metadata should be written \enquote{uncompressed} to pdf. +% It is not quite clear what exactly that means. Probably it only +% means that there should be no |/Filter| key in the stream, but +% packages like \pkg{pdfx} and \pkg{hyperref} try to suppress object +% compression too, so we add support for it too. +% With luatex this is possible by using the |uncompressed| key word. +% With pdftex one can change locally the compresslevel. (x)dvipdfmx does +% it automatically and doesn't need some special command. No solution +% is known for the dvips route. We need it only once, so we make +% it special and probably no public interface is needed. It writes +% an unnamed object so should be referenced directly with |\pdf_object_ref_last:| +% \begin{macrocode} +%<*luatex> +\cs_new_protected:Npn \__pdf_backend_metadata_stream:n #1 + { + \tex_immediate:D \tex_pdfextension:D obj ~uncompressed~ + \__pdf_backend_object_write:nn {stream} {{/Type~/Metadata~/Subtype~/XML}{#1}} + } +%</luatex> +%<*pdftex> +\cs_new_protected:Npn \__pdf_backend_metadata_stream:n #1 + { + \group_begin: + \tex_pdfcompresslevel:D 0 \scan_stop: + \tex_immediate:D \tex_pdfobj:D + \__pdf_backend_object_write:nn {stream} {{/Type~/Metadata~/Subtype~/XML}{#1}} + \group_end: + } +%</pdftex> +%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm> +\cs_new_protected:Npn \__pdf_backend_metadata_stream:n #1 + { + \pdf_object_unnamed_write:nn {stream}{{/Type~/Metadata~/Subtype~/XML}{#1}} + } +%</xdvipdfmx|dvipdfmx|dvips|dvisvgm> +% \end{macrocode} % \subsection{lua code for lualatex} % \begin{macrocode} %<*lua> |