summaryrefslogtreecommitdiff
path: root/Master/texmf-doc/doc/german/pdf-forms-tutorial-de/forms-src/fde0011.tex
blob: d26d260d02f7e940644fcc672cae08dce5bf270b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Um JavaScript auf Dokument-Ebene einzufügen, wird das Package insdljs
benutzt, dabei muss der benutzte Ausgabetreiber angegeben werden.
\begin{lstlisting}
\usepackage[pdftex]{insdljs}
\end{lstlisting}
Der einzufügende JavaScript-Code wird in eine insDLJS-Umgebung
geschrieben. Für das optionale und das erste geforderte Argument
wird ein \LaTeX-Identifier benötigt (am besten einen String
aus lauter Buchstaben verwenden, \emph{keine} Zahlen). Das zweite
geforderte Argument ist ein Kommentar.
\begin{lstlisting}
\begin{insDLJS}[exaaaa]{exaaaa}{JavaScript auf Document Level}
// ... Place Java source code here ...
\end{insDLJS}
\end{lstlisting}
Der Identifier wird verwendet, um einen Dateinamen zu bilden ("`exaaaa.djs"'),
in dem der JavaScript-Code temporär gepackt abgespeichert wird.

Die Funktion, die beim Öffnen des Dokumentes -- genauer gesagt beim Öffnen
der ersten Seite -- gestartet wird, wird mit dem OpenAction-Makro angegeben.
\begin{lstlisting}
\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
\end{lstlisting}
Wie für \textsc{pdf} üblich, steht der String in Klammern. Der String
enthält den auszuführenden Befehl, also den Funktionsnamen mit Klammern,
möglichen Parametern und abschließendem Semikolon.

Die hier angegebene Funktion wird jedesmal aufgerufen, wenn die erste
Seite geöffnet wird. Um die beim Öffnen des Dokumentes notwendigen
Schritte nur einmal auszuführen, wird in einer Variable gespeichert,
ob die Funktion bereits aufgerufen wurde.
\lstinputlisting{../examples/ex0006.tex}
Beim Öffnen der \textsc{pdf}-Datei ex0006.pdf erscheint eine
Message-Box. In dieser ist das Zeichen "o falsch dargestellt.
Ursache hierfür ist die Verwendung des Packages inputenc mit der Einstellung
latin1. Dies wandelt Umlaute und ß in \LaTeX{}-gerechte Folgen wie
"`\textquotedbl{}o"' um, konsequenterweise auch für JavaScript.\\
Es gibt zwei Möglichkeiten, dieses Problem zu lösen:
\begin{itemize}
\item	Das Paket inputenc wird nicht verwendet. Alle Umlaute\ldots im
Text werden durch ihre jeweilige \LaTeX{}-Codierung ersetzt.\\
Ein Beispiel hierfür wird im Listing am Ende dieses Abschnittes
dargestellt.
\item	Im JavaScript-Code werden die Umlaute nicht direkt sondern
als JavaScript-Unicode-Zeichen eingegeben. Dieses Verfahren wird in
Abschnitt~\vref{sec:fde0020} dargestellt.
\end{itemize}
\lstinputlisting{../examples/ex0007.tex}