[latex3-commits] [git/LaTeX3-latex3-pdfresources] testlinkstuff: storing (b4f9aea)
Ulrike Fischer
fischer at troubleshooting-tex.de
Mon May 6 12:52:41 CEST 2019
Repository : https://github.com/latex3/pdfresources
On branch : testlinkstuff
Link : https://github.com/latex3/pdfresources/commit/b4f9aeae6aada4eb375811d24028d8473af5bb3d
>---------------------------------------------------------------
commit b4f9aeae6aada4eb375811d24028d8473af5bb3d
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Mon May 6 12:52:41 2019 +0200
storing
>---------------------------------------------------------------
b4f9aeae6aada4eb375811d24028d8473af5bb3d
pageresources.tex | 89 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 83 insertions(+), 6 deletions(-)
diff --git a/pageresources.tex b/pageresources.tex
index 6dfe67f..5065e16 100644
--- a/pageresources.tex
+++ b/pageresources.tex
@@ -191,6 +191,70 @@ Every of the five dictionaries ExtGState, ColorSpace, Pattern, Shading, Properti
It must be decided when to write the properties to pdfpageresources.
\section{pdfcatalog}
+\begin{itemize}
+\item The catalog dictionary (the root of the pdf) is filled by e.g. \verb+\pdfcatalog+.
+\item Multiple appearances of \verb+\pdfcatalog+ are concatenated (is this true for all drivers??).
+
+\begin{verbatim}
+\pdfcatalog{/XXX (abc)}
+\pdfcatalog{/YYY (cde)}
+\pdfcatalog{/XXX (cde)}
+9 0 obj
+<<
+/Type /Catalog
+/Pages 5 0 R
+/XXX (abc)/YYY (cde)/XXX (cde)
+>>
+endobj
+\end{verbatim}
+
+\item Entries:
+\begin{enumerate}
+ \item Type (name, required, automatic)
+ \item Pages (dict, required, automatic)
+ \item Version (name, e.g. /1.4), takes precendance over the heaver \emph{if later}
+ \item \emph{Collection} (dict, pdf 1.7, (for file attachments))
+ \item \emph{OCProperties} (dict, pdf 1.5, required if a document contains optional content)
+ contains OCGs (array of references), D (dict pointing to a start config), Configs (array of dicts).
+ \item \emph{AcroForm} (dict)
+ \item \emph{Metadata} (stream)
+ \item \emph{PageMode} (name: UseNone, UseOutlines, UseThumbs, FullScreen, UseOC (PDF 1.5),
+ UseAttachments (PDF 1.6)
+ \item \emph{ViewerPreferences} (dict)
+ \item PageLabels (number tree /indirect object)
+ \item Names (dict)
+ \item Dests (dict, must be an indirect reference)
+
+ \item PageLayout (name: one of SinglePage, OneColumn,
+ TwoColumnLeft, TwoColumnRight, TwoPageLeft (PDF 1.5), TwoPageRight (PDF 1.5)
+ \item PageMode (name: UseNone, UseOutlines, UseThumbs, FullScreen, UseOC (PDF 1.5),
+ UseAttachments (PDF 1.6)
+
+ \item Outlines (dict, must be an indirect reference)
+ \item Threads (array, must be an indirect reference)
+ \item OpenAction (array (dest) or dictionary (action))
+ \item AA (dict, additional-actions)
+ \item URI (dict)
+ \item StructTreeRoot (dict) relevant for tagging
+ \item MarkInfo (dict) relevant for tagging
+ \item Lang (string, e.g. (de-DE))
+ \item SpiderInfo (dict)
+ \item OutputIntents (array of dict)
+ An array of output intent dictionaries describing the color characteristics of output devices on which the document might be rendered \item PieceInfo (dict)
+
+ \item Perms (dict, pdf 1.5, permissions)
+ \item Legal (dict, pdf 1.5)
+ \item Requirements (array, pdf 1.7)
+
+ \item NeedsRendering (boolean, pdf 1.7)
+ \item Extensions (dict, pdf 2.0)
+ \item DSS (dict, pdf 2.0)
+ \item AF (array of dictionaries, pdf 2.0, associated files, important for accessibility)
+ \item DPartRoot, (dict, pdf 2.0)
+\end{enumerate}
+\end{itemize}
+
+
\subsection{uses}
\begin{description}
@@ -200,11 +264,10 @@ It must be decided when to write the properties to pdfpageresources.
\item[pdfnotiz] /AcroForm (in sync with cooltooltips)
\item[dccpaper-base] /Metadata (XML-stream)
\item[hyperref] /OCProperties, /PageMode, /URI, openaction goto page, /ViewerPreferences<<lots of content>>, /Lang, /AcroForm (not in sync with cooltooltips),
- \item[hyperxmp]
- \item[jmlrbook.cls]
- \item[media9]
- \item[pdfbase]
- \item[ocgbase]
+ \item[hyperxmp] /Metadata
+ \item[jmlrbook.cls] /OutputIntents, /Metadata
+ \item[pdfbase] AcroForm
+ \item[ocgbase] /OCProperties,
\item[ocg-p]
\item[pdfpagediff]
\item[pdfx]
@@ -213,6 +276,20 @@ It must be decided when to write the properties to pdfpageresources.
\item[xmpincl]
\item[zwpagelayout]
\end{description}
-yet missing
+
+\subsection{Discussion}
+Some values in the catalog need special treatment. So we will have a central property for the catalog, and a number of special properties. An entry like Lang can be added to the catalog property, but e.g ViewerPreferences needs a special property, and the general prop should only contain the indirect reference to the dict obj. Probably a number of tests are needed to prevent users to write into the wrong prop.
+
+\begin{itemize}
+ \item Collection: unclear
+ \item OCProperties: (unclear) Possible that more than one package wants to add something. Then it must be done in the sub dicts OCGs and Configs and would need management.
+ \item AcroForm: (unclear) It looks as if only one can win here. Compare what the packages do and if overwriting is a problem.
+ \item Metadata: (unclear) Only one can win here, so we need to sort out, how to create and fill the stream.
+ \item PageMode, Uri, Lang: (direct write)
+ \item ViewerPreferences: needs its own property that can be filled by packages. At the end it should then be added by us to the catalog.
+
+ \item OutputIntents: needs it own property, as more than one intent can be added. The \enquote{ID} of an intent is the value of OutputCondition, so there should be a way to test it.
+\item
+\end{itemize}
\end{document}
More information about the latex3-commits
mailing list