Um auf Document-Events zu reagieren, muss dem \textsc{pdf}-Katalog ein /AA-Eintrag hinzugefügt werden. Als Wert hat dieser Eintrag einen Verweis auf ein Dictionary, das für verschiedene Document-Events die Event-Handler definiert.\\ Die Einträge in diesem Dictionary bestehen aus je einem Key, der ein Event repräsentiert und einem Dictionary mit der Beschreibung für die auszuführende Aktion.\\ Folgende Keys können auftreten:\\[0.5em] \begin{tabular}{|r|l|} \hline &\\*[-0.9em]\multicolumn{1}{|c|}{\textbf{Key}}&\multicolumn{1}{c|}{\textbf{Bedeutung}}\\ \hline &\\*[-0.9em]/WP&Das Dokument soll gedruckt werden.\\ \hline &\\*[-0.9em]/DP&Das Dokument wurde gedruckt.\\ \hline &\\*[-0.9em]/WS&Das Dokument soll gespeichert werden.\\ \hline &\\*[-0.9em]/DS&Das Dokument wurde gespeichert.\\ \hline &\\*[-0.9em]/DC&Das Dokument soll geschlossen werden.\\ \hline \end{tabular}\\[0.5em] Im Beispiel wird für das WillPrint-Event die Funktion \textit{willPrint();\/} aufgerufen und für das DidPrint-Event die Funktion \textit{didPrint();\/}. \begin{lstlisting} \immediate\pdfobj{ << /WP << /S /JavaScript /JS (willPrint();) >> /DP << /S /JavaScript /JS (didPrint();) >> >> } \pdfcatalog{/AA \the\pdflastobj\space 0 R} \end{lstlisting} In ex0008.pdf wird vor und nach dem Drucken eine Message-Box angezeigt. \lstinputlisting{../examples/ex0008.tex} In ex0009.pdf wird vor und nach dem Drucken die Umrandungs- und Füllfarbe geändert sowie der Textfont. Hierzu werden die Attribute \textit{fillColor\/}, \textit{strokeColor\/} und \textit{textFont\/} geändert. Damit nicht nach jeder einzelnen Änderung ein Bildschirm-Refresh erfolgt, werden die Änderungen in \begin{lstlisting} this.delay = true // ... this.delay = false \end{lstlisting} gekapselt. Dies schiebt den Bildschirm-Refresh solange auf, bis alle Änderungen vorgenommen wurden. In \textit{myFirstJavaScriptFunction()\/} werden für die Auswahllisten \textit{abt\/} und \textit{zeit\/} mit \begin{lstlisting} this.getField("abt").currentValueIndices = 0; this.getField("zeit").currentValueIndices = 0; \end{lstlisting} Standardeinträge vorgewählt.\\ Mit \begin{lstlisting} this.getField("vorname").setFocus(); \end{lstlisting} erhält das Eingabefeld \textit{vorname\/} den Fokus (d.\,h. der Cursor wird in dieses Eingabefeld platziert und das Eingabefeld erhält die Tastatureingaben). \lstinputlisting{../examples/ex0009.tex}