summaryrefslogtreecommitdiff
path: root/info/pdf-forms-tutorial
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/pdf-forms-tutorial
Initial commit
Diffstat (limited to 'info/pdf-forms-tutorial')
-rw-r--r--info/pdf-forms-tutorial/README61
-rw-r--r--info/pdf-forms-tutorial/de/examples/Makefile21
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0001.tex40
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0002.tex55
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0003.tex56
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0004.tex60
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0005.tex71
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0006.tex87
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0007.tex86
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0008.tex103
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0009.tex174
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0010.tex193
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0011.tex194
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0012.tex236
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0013.tex204
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0101.tex259
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0201.tex107
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0202.tex114
-rw-r--r--info/pdf-forms-tutorial/de/examples/ex0301.tex60
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/Makefile34
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/bib.bib29
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0001.tex47
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0002.tex28
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0003.tex67
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0004.tex53
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0005.tex13
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0006.tex22
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0007.tex10
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0008.tex21
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0009.tex17
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0010.tex7
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0011.tex48
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0012.tex65
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0013.tex20
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0014.tex13
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0015.tex9
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0016.tex32
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0017.tex7
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0018.tex28
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0019.tex42
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0020.tex45
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0021.tex22
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0022.tex24
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/fde0023.tex12
-rw-r--r--info/pdf-forms-tutorial/de/forms-src/forms.tex104
-rw-r--r--info/pdf-forms-tutorial/de/forms.pdfbin0 -> 476015 bytes
-rw-r--r--info/pdf-forms-tutorial/en/examples/Makefile21
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0001.tex40
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0002.tex55
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0003.tex56
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0004.tex60
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0005.tex70
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0006.tex87
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0007.tex86
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0008.tex103
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0009.tex174
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0010.tex193
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0011.tex194
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0012.tex236
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0013.tex203
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0101.tex259
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0201.tex107
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0202.tex114
-rw-r--r--info/pdf-forms-tutorial/en/examples/ex0301.tex59
-rw-r--r--info/pdf-forms-tutorial/en/examples/xxx114
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/Makefile31
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/bib.bib29
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0001.tex33
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0002.tex25
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0003.tex58
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0004.tex38
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0005.tex10
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0006.tex18
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0007.tex3
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0008.tex14
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0009.tex16
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0010.tex7
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0011.tex47
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0012.tex59
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0013.tex19
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0014.tex13
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0015.tex8
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0016.tex27
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0017.tex5
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0018.tex17
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0019.tex38
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0020.tex45
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0021.tex15
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0022.tex22
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fde0023.tex13
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/fdl.tex421
-rw-r--r--info/pdf-forms-tutorial/en/forms-src/forms.tex102
-rw-r--r--info/pdf-forms-tutorial/en/forms.pdfbin0 -> 472567 bytes
-rw-r--r--info/pdf-forms-tutorial/fdl.txt397
94 files changed, 6761 insertions, 0 deletions
diff --git a/info/pdf-forms-tutorial/README b/info/pdf-forms-tutorial/README
new file mode 100644
index 0000000000..61cb1f1cec
--- /dev/null
+++ b/info/pdf-forms-tutorial/README
@@ -0,0 +1,61 @@
+CONTENTS
+========
+
+1. Author, Copyright and License
+2. Bug reports, corrections
+3. Package contents
+
+
+1. Author, Copyright and License
+--------------------------------
+Author: Dirk Krause
+Copyright: Copyright (C) 2007 Dirk Krause
+License: Gnu Free Documentation License
+ see the file fdl.txt in this directory for license terms.
+Contact: http://www.fh-schmalkalden.de/url.php?/page/1026/select_wert/3023
+
+
+2. Bug reports, corrections
+---------------------------
+
+Please use the web form
+http://www.fh-schmalkalden.de/url.php?/page/1026/select_wert/3023
+to submit bug reports and suggestions.
+
+English is not my native language, so the english versions of the tutorial
+and the examples may need corrections in spelling, grammar and style.
+Volunteers are welcome, please use the web form as described above
+for suggestions.
+
+
+3. Package contents
+-------------------
+
+This package contains a tutorial and examples how to create PDF forms
+using pdflatex with the hyperref and insdljs packages. The files
+de/forms.pdf and en/forms.pdf are the german and english version of the
+tutorial, the de/examples and en/examples directories contain the
+LaTeX sources for the example forms.
+
+We have three forms:
+- ex00... is a form to request keys for employees.
+ This form is developed step-by-step:
+ ex0001: The initial version, contains all the form elements but looks ugly.
+ ex0002: Form elements aligned in a table.
+ ex0003: Equal widths for form elements, space between elements added.
+ ex0004: Equal y-position for form elements and labels.
+ ex0005: Form element border color changed.
+ ex0006: Document level JavaScript added, processing Doc/Open event.
+ ex0007: German umlauts corrected in the german version.
+ \usepackage[...]{inputenc} is not longer used.
+ ex0008: Processing WillPrint and DidPrint events (showing a message box).
+ ex0009: Processing WillPrint and DidPrint events (color and font changes).
+ ex0010: Processing form element events (validation).
+ ex0011: Final version, the choice list is now editable (combo box style).
+
+- ex0101 is a form to request software licenses and installations.
+ This example shows how to initialize a choice list using
+ JavaScript variables.
+
+- ex0201 is an interactive application for investment calculations.
+ This example shows how to respond to a button click event.
diff --git a/info/pdf-forms-tutorial/de/examples/Makefile b/info/pdf-forms-tutorial/de/examples/Makefile
new file mode 100644
index 0000000000..4cddc10f89
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/Makefile
@@ -0,0 +1,21 @@
+
+ALLFORMS1= ex0001.pdf ex0002.pdf ex0003.pdf ex0004.pdf ex0005.pdf ex0006.pdf
+ALLFORMS2= ex0007.pdf ex0008.pdf ex0009.pdf ex0010.pdf ex0011.pdf ex0101.pdf
+ALLFORMS3= ex0201.pdf ex0301.pdf ex0012.pdf ex0013.pdf
+ALLFORMS= $(ALLFORMS1) $(ALLFORMS2) $(ALLFORMS3)
+
+all: allforms
+
+allforms: $(ALLFORMS)
+
+.SUFFIXES:
+
+.SUFFIXES: .pdf .tex
+
+.tex.pdf:
+ pdflatex $*
+ pdflatex $*
+ pdflatex $*
+
+clean:
+ -rm -fr *.bbl *.blg *.out *.djs ex0*.pdf ex0*.aux ex0*.log
diff --git a/info/pdf-forms-tutorial/de/examples/ex0001.tex b/info/pdf-forms-tutorial/de/examples/ex0001.tex
new file mode 100644
index 0000000000..b79208a898
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0001.tex
@@ -0,0 +1,40 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\begin{document}
+\section*{Anforderung eines Gruppenschlüssels}
+\begin{Form}
+\textbf{Mitarbeiter}\\
+Vorname: \TextField[name=vorname]{}\\
+Name: \TextField[name=name]{}\\
+Abteilung: \ChoiceMenu[name=abt]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+\textbf{Zeitdauer}\\
+Zeitraum: \ChoiceMenu[name=zeit]{}{%
+befristet=b,unbefristet=u}\\
+von: \TextField[name=von]{}\\
+bis: \TextField[name=bis]{}\\
+\textbf{Zu schlie"sende Türen}\\
+Haustür: \CheckBox[name=ht]{}\\
+Etage 1: \CheckBox[name=e1]{}\\
+Etage 2: \CheckBox[name=e2]{}\\
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0002.tex b/info/pdf-forms-tutorial/de/examples/ex0002.tex
new file mode 100644
index 0000000000..51cc2bcc37
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0002.tex
@@ -0,0 +1,55 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\begin{document}
+\section*{Anforderung eines Gruppenschlüssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+Vorname:&%
+\TextField[name=vorname]{}\\
+Name:&%
+\TextField[name=name]{}\\
+Abteilung:&%
+\ChoiceMenu[name=abt]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+Zeitraum:&%
+\ChoiceMenu[name=zeit]{}{%
+befristet=b,unbefristet=u}\\
+von:&%
+\TextField[name=von]{}\\
+bis:&%
+\TextField[name=bis]{}\\
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zu schließende Türen}}\\
+Haustür:&%
+\CheckBox[name=ht,width=1.2em]{}\\
+Etage 1:&%
+\CheckBox[name=e1,width=1.2em]{}\\
+Etage 2:&%
+\CheckBox[name=e2,width=1.2em]{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0003.tex b/info/pdf-forms-tutorial/de/examples/ex0003.tex
new file mode 100644
index 0000000000..ccbd394160
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0003.tex
@@ -0,0 +1,56 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\begin{document}
+\section*{Anforderung eines Gruppenschlüssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]Vorname:&%
+\TextField[name=vorname,width=20em]{}\\
+&\\*[-0.9em]Name:&%
+\TextField[name=name,width=20em]{}\\
+&\\*[-0.9em]Abteilung:&%
+\ChoiceMenu[{}={},name=abt,width=20em,popdown=true]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]Zeitraum:&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true]{}{%
+befristet=b,unbefristet=u}\\
+&\\*[-0.9em]von:&%
+\TextField[name=von,width=10em]{}\\
+&\\*[-0.9em]bis:&%
+\TextField[name=bis,width=10em]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zu schließende Türen}}\\
+&\\*[-0.9em]Haustür:&%
+\CheckBox[name=ht,width=1.2em]{}\\
+&\\*[-0.9em]Etage 1:&%
+\CheckBox[name=e1,width=1.2em]{}\\
+&\\*[-0.9em]Etage 2:&%
+\CheckBox[name=e2,width=1.2em]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0004.tex b/info/pdf-forms-tutorial/de/examples/ex0004.tex
new file mode 100644
index 0000000000..99963b31aa
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0004.tex
@@ -0,0 +1,60 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,%
+align=2,bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschlüssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zu schließende Türen}}\\
+&\\*[-0.9em]\textforlabel{th}{Haustür:}&%
+\CheckBox[name=ht,width=1.2em]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0005.tex b/info/pdf-forms-tutorial/de/examples/ex0005.tex
new file mode 100644
index 0000000000..07ec65d509
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0005.tex
@@ -0,0 +1,71 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschlüssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schließende Türen}}\\
+&\\*[-0.9em]\textforlabel{th}{Haustür:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0006.tex b/info/pdf-forms-tutorial/de/examples/ex0006.tex
new file mode 100644
index 0000000000..ff006a9e84
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0006.tex
@@ -0,0 +1,87 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaaaa]{exaaaa}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert("Das Formular wurde geöffnet.");
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschlüssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{%
+Zu schließende Türen}}\\
+&\\*[-0.9em]\textforlabel{th}{Haustür:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0007.tex b/info/pdf-forms-tutorial/de/examples/ex0007.tex
new file mode 100644
index 0000000000..88532ab517
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0007.tex
@@ -0,0 +1,86 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaaab]{exaaab}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert("Das Formular wurde geöffnet.");
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0008.tex b/info/pdf-forms-tutorial/de/examples/ex0008.tex
new file mode 100644
index 0000000000..078bb5add8
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0008.tex
@@ -0,0 +1,103 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaac]{exaaac}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function willPrint()
+{
+ app.alert("Gleich wird gedruckt.");
+}
+
+function didPrint()
+{
+ app.alert("Es wurde gedruckt.");
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert("Das Formular wurde geöffnet.");
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0009.tex b/info/pdf-forms-tutorial/de/examples/ex0009.tex
new file mode 100644
index 0000000000..4be6b064d0
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0009.tex
@@ -0,0 +1,174 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaad]{exaaad}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("von").fillColor = color.white;
+ this.getField("bis").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("von").strokeColor = color.black;
+ this.getField("bis").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("von").textFont = font.Helv;
+ this.getField("bis").textFont = font.Helv;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("von").fillColor = newcolor;
+ this.getField("bis").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("von").strokeColor = newcolor;
+ this.getField("bis").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("von").textFont = font.HelvB;
+ this.getField("bis").textFont = font.HelvB;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0010.tex b/info/pdf-forms-tutorial/de/examples/ex0010.tex
new file mode 100644
index 0000000000..9bdbfe2452
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0010.tex
@@ -0,0 +1,193 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("von").fillColor = color.white;
+ this.getField("bis").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("von").strokeColor = color.black;
+ this.getField("bis").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("von").textFont = font.Helv;
+ this.getField("bis").textFont = font.Helv;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("von").fillColor = newcolor;
+ this.getField("bis").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("von").strokeColor = newcolor;
+ this.getField("bis").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("von").textFont = font.HelvB;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+ this.getField("bis").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unbefristet")) {
+ this.getField("von").display = display.hidden;
+ this.getField("bis").display = display.hidden;
+ } else {
+ this.getField("von").display = display.visible;
+ this.getField("bis").display = display.visible;
+ this.getField("von").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0011.tex b/info/pdf-forms-tutorial/de/examples/ex0011.tex
new file mode 100644
index 0000000000..3ed89912e9
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0011.tex
@@ -0,0 +1,194 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("von").fillColor = color.white;
+ this.getField("bis").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("von").strokeColor = color.black;
+ this.getField("bis").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("von").textFont = font.Helv;
+ this.getField("bis").textFont = font.Helv;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("von").fillColor = newcolor;
+ this.getField("bis").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("von").strokeColor = newcolor;
+ this.getField("bis").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("von").textFont = font.HelvB;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+ this.getField("bis").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unbefristet")) {
+ this.getField("von").display = display.hidden;
+ this.getField("bis").display = display.hidden;
+ } else {
+ this.getField("von").display = display.visible;
+ this.getField("bis").display = display.visible;
+ this.getField("von").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("abt").editable = true;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,combo=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0012.tex b/info/pdf-forms-tutorial/de/examples/ex0012.tex
new file mode 100644
index 0000000000..d871e75931
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0012.tex
@@ -0,0 +1,236 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("von").fillColor = color.white;
+ this.getField("bis").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("von").strokeColor = color.black;
+ this.getField("bis").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("von").textFont = font.Helv;
+ this.getField("bis").textFont = font.Helv;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("von").fillColor = newcolor;
+ this.getField("bis").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("von").strokeColor = newcolor;
+ this.getField("bis").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("von").textFont = font.HelvB;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+ this.getField("bis").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unbefristet")) {
+ this.getField("von").display = display.hidden;
+ this.getField("bis").display = display.hidden;
+ } else {
+ this.getField("von").display = display.visible;
+ this.getField("bis").display = display.visible;
+ this.getField("von").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("abt").editable = true;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Vorname)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte geben Sie Ihren Vornamen in das Textfeld ein.)
+}\(\qquad\qquad\)\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Name)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte geben Sie Ihren Familiennamen in das Textfeld ein.)
+}\(\qquad\qquad\)\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,combo=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Abteilung)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte wählen Sie Ihre Abteilung aus. Falls Ihre Abteilung noch nicht in der Liste enthalten isi, können Sie den Namen Ihrer Abteilung auch eingeben.)
+}\(\qquad\qquad\)\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Zeitraum)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte wählen Sie aus, ob der Schlüssel befristet oder unbefristet ausgegeben werden soll. Für eine befristete Ausgabe müssen Beginn und Ende des Zeitraumes angegeben werden.)
+}\(\qquad\qquad\)\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Haustür)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte aktivieren Sie diese Chechbox, um einen Haustürschlüssel zu erhalten.)
+}\(\qquad\qquad\)\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (1. Etage)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte aktivieren Sie diese Checkbox, um einen Schlüssel für die erste Etage zu erhalten.)
+}\(\qquad\qquad\)\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (2. Etage)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Bitte aktivieren Sie diese Checkbox, um einen Schlüssel für die zweite Etage zu erhalten.)
+}\(\qquad\qquad\)\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0013.tex b/info/pdf-forms-tutorial/de/examples/ex0013.tex
new file mode 100644
index 0000000000..c8f5e9fd33
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0013.tex
@@ -0,0 +1,204 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("von").fillColor = color.white;
+ this.getField("bis").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("von").strokeColor = color.black;
+ this.getField("bis").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("von").textFont = font.Helv;
+ this.getField("bis").textFont = font.Helv;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("von").fillColor = newcolor;
+ this.getField("bis").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("von").strokeColor = newcolor;
+ this.getField("bis").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("von").textFont = font.HelvB;
+ this.getField("von").textColor = color.black;
+ this.getField("bis").textColor = color.black;
+ this.getField("bis").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unbefristet")) {
+ this.getField("von").display = display.hidden;
+ this.getField("bis").display = display.hidden;
+ } else {
+ this.getField("von").display = display.visible;
+ this.getField("bis").display = display.visible;
+ this.getField("von").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("abt").editable = true;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+
+ this.getField("vorname").userName = "Bitte geben Sie Ihren Vornamen ein.";
+ this.getField("name").userName = "Bitte geben Sie Ihren Familiennamen ein.";
+ this.getField("abt").userName = "Bitte w\u00E4hlen Sie Ihre Abteilung aus bzw. geben Sie den Abteilungsnamen ein, falls er noch nicht in der Liste enthalten ist";
+ this.getField("zeit").userName = "Bitte w\u00E4hlen Sie, ob die Schl\u00FCsselausgabe befristet oder unbefristet erfolgen soll.";
+ this.getField("von").userName = "Bitte geben Sie den Beginn des Zeitraumes an.";
+ this.getField("bis").userName = "Bitte geben Sie das Ende des Zeitraumes an.";
+ this.getField("ht").userName = "Bitte aktivieren Sie diese Checkbox, um einen Schl\u00FCssel f\u00FCr die Haust\u00FCr zu erhalten.";
+ this.getField("e1").userName = "Bitte aktivieren Sie diese Checkbox, um einen Schl\u00FCssel f\u00FCr die erste Etage zu erhalten.";
+ this.getField("e2").userName = "Bitte aktivieren Sie diese Checkbox, um einen Schl\u00FCssel f\u00FCr die zweite Etage zu erhalten.";
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung eines Gruppenschl\"{u}ssels}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Mitarbeiter}}\\
+&\\*[-0.9em]\textforlabel{vn}{Vorname:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Abteilung:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,combo=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Verkauf=v,Fertigung=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Zeitdauer}}\\
+&\\*[-0.9em]\textforlabel{z}{Zeitraum:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unbefristet=u,befristet=b}\\
+&\\*[-0.9em]\textforlabel{v}{von:}&%
+\TextField[name=von,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{bis:}&%
+\TextField[name=bis,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Zu schlie\ss{}ende T\"{u}ren}}\\
+&\\*[-0.9em]\textforlabel{th}{Haust\"{u}r:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Etage 1:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{Etage 2:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0101.tex b/info/pdf-forms-tutorial/de/examples/ex0101.tex
new file mode 100644
index 0000000000..52004303d4
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0101.tex
@@ -0,0 +1,259 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Software},pdfsubject={Software},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaba]{exaaba}{JavaScript auf Document Level}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").fillColor = color.white;
+ this.getField("name").strokeColor = color.black;
+ this.getField("name").textFont = font.Helv;
+ this.getField("inventory").fillColor = color.white;
+ this.getField("inventory").strokeColor = color.black;
+ this.getField("inventory").textFont = font.Helv;
+ this.getField("sw01").fillColor = color.white;
+ this.getField("sw01").strokeColor = color.black;
+ this.getField("sw01").textFont = font.Helv;
+ this.getField("sw02").fillColor = color.white;
+ this.getField("sw02").strokeColor = color.black;
+ this.getField("sw02").textFont = font.Helv;
+ this.getField("sw03").fillColor = color.white;
+ this.getField("sw03").strokeColor = color.black;
+ this.getField("sw03").textFont = font.Helv;
+ this.getField("sw04").fillColor = color.white;
+ this.getField("sw04").strokeColor = color.black;
+ this.getField("sw04").textFont = font.Helv;
+ this.getField("sw05").fillColor = color.white;
+ this.getField("sw05").strokeColor = color.black;
+ this.getField("sw05").textFont = font.Helv;
+ this.getField("sw06").fillColor = color.white;
+ this.getField("sw06").strokeColor = color.black;
+ this.getField("sw06").textFont = font.Helv;
+ this.getField("sw07").fillColor = color.white;
+ this.getField("sw07").strokeColor = color.black;
+ this.getField("sw07").textFont = font.Helv;
+ this.getField("sw08").fillColor = color.white;
+ this.getField("sw08").strokeColor = color.black;
+ this.getField("sw08").textFont = font.Helv;
+ this.getField("sw09").fillColor = color.white;
+ this.getField("sw09").strokeColor = color.black;
+ this.getField("sw09").textFont = font.Helv;
+ this.getField("sw10").fillColor = color.white;
+ this.getField("sw10").strokeColor = color.black;
+ this.getField("sw10").textFont = font.Helv;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").fillColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("inventory").fillColor = newcolor;
+ this.getField("inventory").strokeColor = newcolor;
+ this.getField("inventory").textFont = font.HelvB;
+ this.getField("sw01").fillColor = newcolor;
+ this.getField("sw01").strokeColor = newcolor;
+ this.getField("sw01").textFont = font.HelvB;
+ this.getField("sw02").fillColor = newcolor;
+ this.getField("sw02").strokeColor = newcolor;
+ this.getField("sw02").textFont = font.HelvB;
+ this.getField("sw03").fillColor = newcolor;
+ this.getField("sw03").strokeColor = newcolor;
+ this.getField("sw03").textFont = font.HelvB;
+ this.getField("sw04").fillColor = newcolor;
+ this.getField("sw04").strokeColor = newcolor;
+ this.getField("sw04").textFont = font.HelvB;
+ this.getField("sw05").fillColor = newcolor;
+ this.getField("sw05").strokeColor = newcolor;
+ this.getField("sw05").textFont = font.HelvB;
+ this.getField("sw06").fillColor = newcolor;
+ this.getField("sw06").strokeColor = newcolor;
+ this.getField("sw06").textFont = font.HelvB;
+ this.getField("sw07").fillColor = newcolor;
+ this.getField("sw07").strokeColor = newcolor;
+ this.getField("sw07").textFont = font.HelvB;
+ this.getField("sw08").fillColor = newcolor;
+ this.getField("sw08").strokeColor = newcolor;
+ this.getField("sw08").textFont = font.HelvB;
+ this.getField("sw09").fillColor = newcolor;
+ this.getField("sw09").strokeColor = newcolor;
+ this.getField("sw09").textFont = font.HelvB;
+ this.getField("sw10").fillColor = newcolor;
+ this.getField("sw10").strokeColor = newcolor;
+ this.getField("sw10").textFont = font.HelvB;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+var softwareAuswahl = [
+ [ "", ""],
+ [ "Betriebssystem", "os" ],
+ [ "Textverarbeitung", "tp" ],
+ [ "Tabellenkalkulation", "sc" ],
+ [ "Präsentationsprogramm", "pp" ],
+ [ "E-Mail-Client", "mc" ],
+ [ "Web browser", "wb" ],
+ [ "Mathematik-Software", "ms" ],
+ [ "PDF-Anzeigeprogramm", "pv" ]
+];
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("sw01").setItems(softwareAuswahl);
+ this.getField("sw01").currentValueIndices = 0;
+ this.getField("sw01").editable = true;
+ this.getField("sw02").setItems(softwareAuswahl);
+ this.getField("sw02").currentValueIndices = 0;
+ this.getField("sw02").editable = true;
+ this.getField("sw03").setItems(softwareAuswahl);
+ this.getField("sw03").currentValueIndices = 0;
+ this.getField("sw03").editable = true;
+ this.getField("sw04").setItems(softwareAuswahl);
+ this.getField("sw04").currentValueIndices = 0;
+ this.getField("sw04").editable = true;
+ this.getField("sw05").setItems(softwareAuswahl);
+ this.getField("sw05").currentValueIndices = 0;
+ this.getField("sw05").editable = true;
+ this.getField("sw06").setItems(softwareAuswahl);
+ this.getField("sw06").currentValueIndices = 0;
+ this.getField("sw06").editable = true;
+ this.getField("sw07").setItems(softwareAuswahl);
+ this.getField("sw07").currentValueIndices = 0;
+ this.getField("sw07").editable = true;
+ this.getField("sw08").setItems(softwareAuswahl);
+ this.getField("sw08").currentValueIndices = 0;
+ this.getField("sw08").editable = true;
+ this.getField("sw09").setItems(softwareAuswahl);
+ this.getField("sw09").currentValueIndices = 0;
+ this.getField("sw09").editable = true;
+ this.getField("sw10").setItems(softwareAuswahl);
+ this.getField("sw10").currentValueIndices = 0;
+ this.getField("sw10").editable = true;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Anforderung von Software-Lizenzen und -installationen}
+\begin{Form}
+\begin{tabular}{|rr|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|c|}{\textbf{Systemverantwortlicher}}\\
+&\\*[-0.9em]\textforlabel{l01}{Vorname:}&\TextField[%
+name=vorname,width=20em,bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{l02}{Name:}&\TextField[%
+name=name,width=20em,bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|c|}{\textbf{PC}}\\
+&\\*[-0.9em]\textforlabel{l03}{Inventarnummer:}%
+&\TextField[name=inventory,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|c|}{\textbf{Ben\"{o}tigte Software}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw01,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw02,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw03,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw04,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw05,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw06,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw07,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw08,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw09,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw10,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{~}\\*\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0201.tex b/info/pdf-forms-tutorial/de/examples/ex0201.tex
new file mode 100644
index 0000000000..06cb9eb0fa
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0201.tex
@@ -0,0 +1,107 @@
+\documentclass{scrartcl}
+\setcounter{secnumdepth}{0}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\setlength{\paperwidth}{5.2075in}
+\setlength{\paperheight}{3.75in}
+\renewcommand*{\familydefault}{phv}
+\usepackage[pdftex,margin=0.5in]{geometry}
+\usepackage{fancyhdr}
+\lhead{Dicke Kohle GmbH}\chead{}
+\rhead{Abteilung f\"{u}r Versprechungen}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[pdftex,pdfpagelayout=SinglePage,%
+pdftitle={Anlageberechnung},pdfsubject={Formular}%
+]{hyperref}
+\definecolor{background}{rgb}{0.99,0.98,0.85}
+\pagecolor{background}
+\setlength{\parindent}{0.0cm}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaaca]{exaaca}{JavaScript functions}
+var done = 0;
+
+function docOpen()
+{
+ if(!done) {
+ done = 1;
+ var newcolor = [ "RGB", 0.99, 0.98, 0.85];
+ var borcolor = [ "RGB", 0.65, 0.79, 0.94]
+ this.getField("l01").fillColor = newcolor;
+ this.getField("l01").strokeColor = newcolor;
+ this.getField("l02").fillColor = newcolor;
+ this.getField("l02").strokeColor = newcolor;
+ this.getField("l03").fillColor = newcolor;
+ this.getField("l03").strokeColor = newcolor;
+ this.getField("l04").fillColor = newcolor;
+ this.getField("l04").strokeColor = newcolor;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("summe").fillColor = newcolor;
+ this.getField("zins").fillColor = newcolor;
+ this.getField("ergebnis").fillColor = newcolor;
+ }
+}
+
+function doCalculation()
+{
+ var summe = 0.0 + this.getField("summe").value;
+ var zins = 0.0 + this.getField("zins").value;
+ var zeit = 0 + this.getField("zeit").value;
+ var i, faktor, wert;
+ faktor = 1.0 + 0.01 * zins;
+ for(i = 0; i < zeit; i++) {
+ summe = summe * faktor;
+ }
+ wert = Math.round(100.0 * summe);
+ wert = 0.01 * wert;
+ wert = wert.toFixed(2);
+ wert = wert.toString();
+ this.getField("ergebnis").value = wert;
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (docOpen();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={0.99 0.98 0.85},%
+fillcolor={0.99 0.98 0.85},readonly=true]{}%
+}
+\begin{document}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]\multicolumn{2}{|c|}{%
+\textsc{E\,i\,n\,g\,a\,b\,e\,d\,a\,t\,e\,n}%
+}\\
+&\\*[-0.8em]\textforlabel{l01}{Anlagesumme:}&\TextField[%
+name=summe,width=10em,bordercolor={0.65 0.79 0.94}]{}%
+~\texteuro\\
+&\\*[-0.8em]\textforlabel{l02}{Zinssatz:}&\TextField[%
+name=zins,width=10em,bordercolor={0.65 0.79 0.94}]{}~\%\\
+&\\*[-0.8em]\textforlabel{l03}{Anlagezeitraum:}&%
+\ChoiceMenu[name=zeit,popdown=true,bordercolor={0.65 0.79 0.94}%
+]{}{{1}={1},{2}={2},{3}={3},{4}={4},{5}={5},%
+{6}={6},{7}={7},{8}={8},{9}={9},{10}={10}}~Jahre\\
+&\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{B\,e\,r\,e\,c\,h\,n\,u\,n\,g}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\PushButton[name=start,%
+onclick={doCalculation()},bordercolor={0.65 0.79 0.94},%
+fillcolor={0.5 0.5 0.5}]{Start}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{A\,u\,s\,g\,a\,b\,e}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\textforlabel{l04}{%
+Anlageergebnis:}&\TextField[name=ergebnis,width=10em,%
+bordercolor={0 0 0},readonly=true]{}~\texteuro\\
+\multicolumn{2}{|c|}{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0202.tex b/info/pdf-forms-tutorial/de/examples/ex0202.tex
new file mode 100644
index 0000000000..6c2f6898f1
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0202.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\setcounter{secnumdepth}{0}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\setlength{\paperwidth}{5.2075in}
+\setlength{\paperheight}{3.75in}
+\renewcommand*{\familydefault}{phv}
+\usepackage[pdftex,margin=0.5in]{geometry}
+\usepackage{fancyhdr}
+\lhead{Dicke Kohle GmbH}\chead{}
+\rhead{Abteilung f\"{u}r Versprechungen}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[pdftex,pdfpagelayout=SinglePage,%
+pdftitle={Anlageberechnung},pdfsubject={Formular}%
+]{hyperref}
+\definecolor{background}{rgb}{0.99,0.98,0.85}
+\pagecolor{background}
+\setlength{\parindent}{0.0cm}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaacb]{exaacb}{JavaScript functions}
+var done = 0;
+
+function docOpen()
+{
+ if(!done) {
+ done = 1;
+ var newcolor = [ "RGB", 0.99, 0.98, 0.85];
+ var borcolor = [ "RGB", 0.65, 0.79, 0.94]
+ this.getField("l01").fillColor = newcolor;
+ this.getField("l01").strokeColor = newcolor;
+ this.getField("l02").fillColor = newcolor;
+ this.getField("l02").strokeColor = newcolor;
+ this.getField("l03").fillColor = newcolor;
+ this.getField("l03").strokeColor = newcolor;
+ this.getField("l04").fillColor = newcolor;
+ this.getField("l04").strokeColor = newcolor;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("summe").fillColor = newcolor;
+ this.getField("zins").fillColor = newcolor;
+ this.getField("ergebnis").fillColor = newcolor;
+ }
+}
+
+function restrictDecimalDigits(s,n)
+{
+ var back = s;
+ return back;
+}
+
+function doCalculation()
+{
+ var summe = 0.0 + this.getField("summe").value;
+ var zins = 0.0 + this.getField("zins").value;
+ var zeit = 0 + this.getField("zeit").value;
+ var i, faktor, wert;
+ faktor = 1.0 + 0.01 * zins;
+ for(i = 0; i < zeit; i++) {
+ summe = summe * faktor;
+ }
+ wert = Math.round(100.0 * summe);
+ wert = wert.toFixed(0);
+ wert = 0.01 * wert;
+ wert = wert.toString();
+ wert = restrictDecimalDigits(wert, 2);
+ this.getField("ergebnis").value = wert;
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (docOpen();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={0.99 0.98 0.85},%
+fillcolor={0.99 0.98 0.85},readonly=true]{}%
+}
+\begin{document}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]\multicolumn{2}{|c|}{%
+\textsc{E\,i\,n\,g\,a\,b\,e\,d\,a\,t\,e\,n}%
+}\\
+&\\*[-0.8em]\textforlabel{l01}{Anlagesumme:}&\TextField[%
+name=summe,width=10em,bordercolor={0.65 0.79 0.94}]{}%
+~\texteuro\\
+&\\*[-0.8em]\textforlabel{l02}{Zinssatz:}&\TextField[%
+name=zins,width=10em,bordercolor={0.65 0.79 0.94}]{}~\%\\
+&\\*[-0.8em]\textforlabel{l03}{Anlagezeitraum:}&%
+\ChoiceMenu[name=zeit,popdown=true,bordercolor={0.65 0.79 0.94}%
+]{}{{1}={1},{2}={2},{3}={3},{4}={4},{5}={5},%
+{6}={6},{7}={7},{8}={8},{9}={9},{10}={10}}~Jahre\\
+&\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{B\,e\,r\,e\,c\,h\,n\,u\,n\,g}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\PushButton[name=start,%
+onclick={doCalculation()},bordercolor={0.65 0.79 0.94},%
+fillcolor={0.5 0.5 0.5}]{Start}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{A\,u\,s\,g\,a\,b\,e}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\textforlabel{l04}{%
+Anlageergebnis:}&\TextField[name=ergebnis,width=10em,%
+bordercolor={0 0 0}]{}~\texteuro\\
+\multicolumn{2}{|c|}{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/examples/ex0301.tex b/info/pdf-forms-tutorial/de/examples/ex0301.tex
new file mode 100644
index 0000000000..940ab3a9b6
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/examples/ex0301.tex
@@ -0,0 +1,60 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Test}\chead{}\rhead{inputenc und insdljs}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={insdljs und inputenc},pdfsubject={Test},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaada]{exaada}{JavaScript auf Document Level}
+// indicate that the function was not yet run
+var done = 0;
+
+// text to show when file is opened
+var theText =
+"Test mit \u00E4\u00F6\u00FC\u00C4\u00D6\u00DC\u00DF";
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert(theText);
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section{Test mit insdljs und inputenc}
+Dies ist ein Test, ob eine Zusammenarbeit der Pakete insdljs
+und inputenc möglich ist.\\
+Getestet werden die deutschen Umlaute und Ligaturen
+\begin{itemize}
+\item ä (ae)
+\item ö (oe)
+\item ü (ue)
+\item Ä (Ae)
+\item Ö (Oe)
+\item Ü (Ue)
+\item ß (sz)
+\end{itemize}
+\end{document}
diff --git a/info/pdf-forms-tutorial/de/forms-src/Makefile b/info/pdf-forms-tutorial/de/forms-src/Makefile
new file mode 100644
index 0000000000..c660bdce01
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/Makefile
@@ -0,0 +1,34 @@
+all: forms.pdf
+
+SOURCES= forms.tex\
+ bib.bib\
+ fde0001.tex\
+ fde0002.tex\
+ fde0003.tex\
+ fde0004.tex\
+ fde0005.tex\
+ fde0006.tex\
+ fde0007.tex\
+ fde0008.tex\
+ fde0009.tex\
+ fde0010.tex\
+ fde0011.tex\
+ fde0012.tex\
+ fde0013.tex\
+ fde0014.tex\
+ fde0015.tex\
+ fde0016.tex\
+ fde0017.tex\
+ fde0018.tex
+
+forms.pdf: $(SOURCES)
+ -rm fdl.tex
+ ln ../../en/forms-src/fdl.tex .
+ pdflatex forms
+ bibtex forms
+ pdflatex forms
+ pdflatex forms
+
+clean:
+ -rm -fr *.bbl *.blg *.out *.djs ex00*.pdf
+
diff --git a/info/pdf-forms-tutorial/de/forms-src/bib.bib b/info/pdf-forms-tutorial/de/forms-src/bib.bib
new file mode 100644
index 0000000000..f5cc9f1914
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/bib.bib
@@ -0,0 +1,29 @@
+@Book{pdf:javascript,
+author = "Adobe Technical Support",
+title = "{A}crobat {J}ava{S}cript {O}bject {Specification} Version 5.1",
+publisher = "Adobe Systems Incorporated",
+year = "2003"
+}
+@Book{pdf:reference,
+author = "{A}dobe {S}ystems {I}ncorporated",
+title = "PDF {R}eference, third edition",
+publisher = "Adobe Systems Incorporated",
+year = "2001"
+}
+@Book{hyperref:manual,
+author = "Sebastian Rahtz and Heiko Oberdiek",
+title = "{H}ypertext marks in LaTeX: a manual for hyperref",
+year = "2004"
+}
+@Book{pdf:scripting:guide,
+author = "{A}dobe {D}eveloper {S}upport",
+title = "Acrobat JavaScript Scripting Guide",
+publisher = "Adobe Systems Incorporated",
+year = "2005"
+}
+@Book{pdf:scripting:reference,
+author = "{A}dobe {D}eveloper {S}upport",
+title = "Acrobat JavaScript Scripting Reference",
+publisher = "Adobe Systems Incorporated",
+year = "2005"
+}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0001.tex b/info/pdf-forms-tutorial/de/forms-src/fde0001.tex
new file mode 100644
index 0000000000..83cb0e79e3
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0001.tex
@@ -0,0 +1,47 @@
+\subsection{Copyright}
+Copyright (c) 2007 Dirk Krause\\*[0.5em]
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the \textsc{gnu} Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.\\
+A copy of the license is included in the appendix in a section
+named "`\textsc{gnu} Free Documentation License"'.
+\subsection{Zweck dieses Tutorials}
+Dieses Tutorial gibt eine Einführung, wie man mit pdf\LaTeX{}, hyperref
+und insdljs PDF-Formulare erstellen kann. Der Schwerpunkt
+liegt auf Formularen, die am Rechner ausgefüllt und anschließend ausgedruckt
+werden sollen.
+
+Folgende Voraussetzungen
+müssen erfüllt sein, damit Sie die Schritte dieses Tutorials nachvollziehen
+können:
+\begin{itemize}
+\item Sie benötigen eine \LaTeX{}-Distribution, die das Kommando
+ "`\pdflatex{}"' enthält.
+\item Das hyperref-Package muss installiert sein.
+\item Das insdljs-Package muss installiert sein. Hierbei handelt es
+ sich um einen Teil des AcroTex Education Bundles, das
+ unter http://www.acrotex.net zu finden ist.\\
+ Dieses Paket ermöglicht es, Document Level JavaScript einzufügen.
+\end{itemize}
+
+Folgende Dokumentationen sollten verfügbar sein:
+\begin{itemize}
+\item das Manual zum hyperref-Package.\\
+ \cite{hyperref:manual},
+\item die Guides, Spezifikationen und Referenzen zu
+ Acrobat JavaScript in \textsc{pdf}-Dateien\\*
+ \cite{pdf:javascript},\\*
+ \cite{pdf:scripting:guide},\\*
+ \cite{pdf:scripting:reference} und
+\item die Referenz zum \textsc{pdf}-Dateiformat\\*
+ \cite{pdf:reference}.
+\end{itemize}
+Die ersten Dokumentationen werden unbedingt benötigt, die
+\textsc{pdf}-Referenz eher seltener.
+
+In diesem Tutorial werden drei Beispiel-Formulare vorgestellt,
+das erste Beispiel wird schrittweise entwickelt. Die Endfassungen
+der Formulare befinden sich in den Dateien
+"`ex0011.tex"', "`ex0101.tex"' und "`ex0201.tex"'.
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0002.tex b/info/pdf-forms-tutorial/de/forms-src/fde0002.tex
new file mode 100644
index 0000000000..337c64fa0a
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0002.tex
@@ -0,0 +1,28 @@
+\emph{Hinweis:\/} Die in diesem Abschnitt dargestellten Informationen
+wurden dem Handbuch manual.pdf der hyperref-Dokumentation
+(\cite{hyperref:manual}) entnommen.
+Dort werden die \texttt{Form}-Umgebung, die Formularfeld-Makros und deren
+Parameter wesentlich detaillierter dargestellt als hier.
+
+Das hyperref-Paket bietet Umgebungen und Makros für den Formular-Entwurf an.
+Die Formularfelder müssen in einer \texttt{Form}-Umgebung platziert werden,
+pro Datei darf eine \texttt{Form}-Umgebung verwendet werden.\\
+Folgende Makros erstellen Formularfelder:
+\begin{itemize}
+\item \texttt{\textbackslash{}TextField[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+erzeugt ein Textfeld.
+\item \texttt{\textbackslash{}CheckBox[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+erzeugt eine Checkbox.
+\item \texttt{\textbackslash{}ChoiceMenu[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}\{}\textit{Auswahl-Optionen}\texttt{\}}\\
+erzeugt eine Auswahlliste.
+\item \texttt{\textbackslash{}PushButton[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+erzeugt einen Button.
+\item \texttt{\textbackslash{}Submit[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+erzeugt einen Submit-Button. Das Drücken eines Submit-Buttons bewirkt, dass
+die in das Formular eingegebenen Daten an die \textsc{url} gesendet werden,
+die als action-Parameter der \texttt{Form}-Umgebung angegeben wurde.
+\item \texttt{\textbackslash{}Reset[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+erzeugt einen Reset-Button.
+\end{itemize}
+
+
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0003.tex b/info/pdf-forms-tutorial/de/forms-src/fde0003.tex
new file mode 100644
index 0000000000..719b511695
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0003.tex
@@ -0,0 +1,67 @@
+\subsubsection{Dokumentenklasse}
+Für Formulare kann die gewohnte Dokumentenklasse -- z.\,B. scrartcl oder
+article -- verwendet werden.
+\subsubsection{Schriftarten}
+Der \textsc{pdf}-Standard gibt vor, welche Schriftarten jedes
+\textsc{pdf}-Anzeigeprogramm darstellen können muss, auch wenn der entsprechende
+Font nicht in der \textsc{pdf}-Datei eingebettet ist. Diese Schriften können
+für Formularfelder auch per JavaScript eingestellt werden. Da wir die
+Schriftarten mit JavaScript-Befehlen ändern wollen, verwenden wir von
+vornherein diese Schriften. Im Wesentlichen handelt es
+sich um die Schriftfamilien Times, Helvetica und Courier.\\
+Die Packages für die Schriftfamilien als Type-1-Fonts werden mit
+\begin{lstlisting}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\end{lstlisting}
+geladen.\\
+Mit
+\begin{lstlisting}
+\usepackage[T1]{fontenc}
+\end{lstlisting}
+wird T1-Encoding anstelle des von \LaTeX{} standardmäßig benutzten
+OT1-Encodings benutzt.\\
+Mit
+\begin{lstlisting}
+\renewcommand*{\familydefault}{\phv}
+\end{lstlisting}
+wird die Helvetica als Standardschrift eingestellt, da serifenlose
+Schriften auf dem Bildschirm meist besser lesbar sind als Schriften
+mit Serifen.
+\subsubsection{Seitenlayout}
+Mit
+\begin{lstlisting}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\end{lstlisting}
+werden die Ränder festgelegt. Formulare werden meist abgeheftet, der linke
+Seitenrand sollte also groß genug gewählt werden. Hier wurde auch ein relativ
+großer oberer Rand gewählt, um ein Formular z.\,B. auf einem Klemmbrett
+befestigen zu können.\\
+Mit
+\begin{lstlisting}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\end{lstlisting}
+werden die Kopf- und Fußzeilen gestaltet.
+\subsubsection{Graphiken und Farben}
+Mit
+\begin{lstlisting}
+\usepackage{graphicx}
+\usepackage{color}
+\end{lstlisting}
+werden zwei weitere Packages eingebunden, die für die Verwendung von
+Graphiken (z.\,B. ein Logo) und Farben benötigt werden.
+\subsubsection{hyperref-Paket}
+Das hyperref-Paket wird mit
+\begin{lstlisting}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Formular für Schlüsselausgabe},
+ pdfsubject={Zugang},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,pdfhighlight={/N}
+]{hyperref}
+\end{lstlisting}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0004.tex b/info/pdf-forms-tutorial/de/forms-src/fde0004.tex
new file mode 100644
index 0000000000..97e964145a
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0004.tex
@@ -0,0 +1,53 @@
+Für die Gestaltung der Formularelemente empfehle ich, entsprechend
+Tabelle~\vref{tab:gestaltung-von-formularelementen} vorzugehen.
+\begin{longtable}{|l|c|c|c|}
+\caption{Gestaltung von Formularelementen}
+\label{tab:gestaltung-von-formularelementen}
+\\
+\multicolumn{4}{c}{~}\\*[-0.9em]
+\hline
+&&&\\*[-0.9em]\multicolumn{1}{|c|}{}&\multicolumn{1}{c|}{\textbf{Umrandung}}&\multicolumn{1}{c|}{\textbf{Füllung}}&\multicolumn{1}{c|}{\textbf{Schrift}}\\
+\hline
+\endfirsthead
+\multicolumn{4}{|r|}{\textsl{Fortsetzung}}
+\endhead
+\multicolumn{4}{|r|}{\textsl{wird fortgesetzt}}
+\endfoot
+\hline
+\endlastfoot
+\hline
+&&&\\*[-0.9em]Bildschirm&farbig&farbig&fett\\
+\hline
+&&&\\*[-0.9em]Druck&schwarz&weiß&normal\\
+\hline
+&&&\\*[-0.9em]Bildschirm und Druck\footnote{JavaScript ist deaktiviert}&farbig&weiß&normal\\
+\end{longtable}
+Es wird davon ausgegangen, dass Formulare in größeren Mengen gedruckt
+werden. Bei ausgedruckten Formularen ist in aller Regel die enthaltene
+Information wichtig, nicht so sehr die Schönheit. Deshalb wird meist auf
+Schwarz-Weiß-Druckern gedruckt.
+
+Beim Ausfüllen am Bildschirm sollten möglichst alle Formularfelder deutlich
+farbig markiert sein, damit keines übersehen wird. Damit die Schrift gut
+lesbar ist und sich optisch deutlich vom farbig gefüllten Hintergrund abhebt,
+wird eine fette Schrift eingesetzt.
+
+Beim Ausdruck erscheint die Schrift schwarz auf weiß und muss daher nicht
+mehr fett sein. Dem Formular-Auswerter -- der das ausgedruckte Formular
+vor sich hat -- wird die Arbeit erleichtert, wenn
+die eingetragenen Daten sich deutlich von den Formularbeschriftungen
+abheben. Hierzu dient die schwarze Umrandung.
+
+Der Wechsel zwischen Bildschirmdarstellung und Druckdarstellung erfordert,
+dass JavaScript im \textsc{pdf}-Anzeigeprogramm erlaubt ist. Einige Nutzer
+verbieten dies aus Sicherheitsgründen, hier muss bei der Darstellung
+ein Kompromiss gefunden werden. Die farbige Umrandung markiert nach wie
+vor die Formularfelder, ohne farbige Füllung allerdings nicht so deutlich.
+Auch auf dem Ausdruck ist die Markierung weniger deutlich als mit JavaScript,
+da helle Farben in ein entsprechend helles Grau umgewandelt werden, wenn
+auf Schwarz-Weiß-Druckern gedruckt wird.
+
+Die Markierungsfarbe sollte für alle Formularelemente gleich gewählt werden.
+Da schwarzer Text auf farbig gefüllten Flächen erscheint, sollte eine
+möglichst helle Farbe gewählt werden. Ich persönlich verwende häufig hellblau,
+die Wahl einer Farbe ist letztendlich Geschmackssache.
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0005.tex b/info/pdf-forms-tutorial/de/forms-src/fde0005.tex
new file mode 100644
index 0000000000..1bbd86447d
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0005.tex
@@ -0,0 +1,13 @@
+Es soll ein Formular entworfen werden, mit dem Schlüssel für Mitarbeiter
+angefordert werden. Das Formular soll u.\,a. folgende Informationen
+enthalten:
+\begin{itemize}
+\item Vorname und Name
+\item Abteilung
+\item Zeitdauer (unbefristet bzw. befristet von \ldots{} bis \ldots{}).
+\item die zu schließenden Türen.
+\end{itemize}
+Vorname und Name werden in Textfelder eingegeben. Die Abteilung wird aus
+einer Auswahlliste ausgewählt, die Angabe befristet/unbefristet ebenso.
+Anfangs- und Endzeitraum werden in Textfelder eingegeben. Die zu schließenden
+Türen werden mit Checkboxen ausgewählt.
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0006.tex b/info/pdf-forms-tutorial/de/forms-src/fde0006.tex
new file mode 100644
index 0000000000..a918fe1b2a
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0006.tex
@@ -0,0 +1,22 @@
+Datei ex0001.tex zeigt einen ersten Versuch zur Realisierung des Formulares.
+\lstinputlisting{../examples/ex0001.tex}
+Nachdem die \textsc{pdf}-Datei ex0001 mit
+\begin{lstlisting}
+pdflatex ex0001 && pdflatex ex0001
+\end{lstlisting}
+erstellt wurde, kann sie im \textsc{pdf}-Viewer geöffnet werden. Die gewünschte
+Funktionalität ist zwar vorhanden, das Aussehen läßt -- vorsichtig formuliert --
+zu wünschen übrig.
+
+Am Quelltext kann aber bisher Folgendes nachvollzogen werden:
+\begin{itemize}
+\item Für jedes Formularelement wurde ein eindeutiger Name angegeben.
+ Dies wird später wichtig, um aus JavaScript-Funktionen heraus
+ bestimmte Elementeeigenschaften zu ändern.
+\item Für Auswahllisten (ChoiceMenu) wird als letztes Argument eine
+ Werteliste angegeben. Die Einträge der Liste sind durch Kommata
+ getrennt. Jeder Eintrag enthält links vom Gleichheitszeichen
+ den anzuzeigenden Text und rechts ein Kürzel. Dieses Kürzel
+ ist später wichtig, wenn mit JavaScript abgefragt wird, welcher
+ Eintrag aktuell ausgewählt ist.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0007.tex b/info/pdf-forms-tutorial/de/forms-src/fde0007.tex
new file mode 100644
index 0000000000..3699724862
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0007.tex
@@ -0,0 +1,10 @@
+Um die Darstellung in Tabellenform zu bringen, wird die tabular-Umgebung
+genutzt.
+\lstinputlisting{../examples/ex0002.tex}
+Kritikpunkte:
+\begin{itemize}
+\item Zwischen den Eingabefeldern existiert kein vertikaler Zwischenraum.
+\item Auch nach einer Auswahl zeigen die Auswahllisten alle Werte an.
+ Im Normalfall soll hier nur ein Wert angezeigt werden.
+\item Auswahllisten und Textfelder haben unterschiedliche Längen.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0008.tex b/info/pdf-forms-tutorial/de/forms-src/fde0008.tex
new file mode 100644
index 0000000000..d6dc835c60
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0008.tex
@@ -0,0 +1,21 @@
+Das Problem der vertikalen Zwischenräume wird mit
+\begin{lstlisting}
+&&\\*[-0.9em]
+\end{lstlisting}
+am Anfang jeder Zeile gelöst. Vor der letzten horizontalen Linie ist
+dies allerdings nicht möglich, hier wird eine komplette Leerzeile
+mit
+\begin{lstlisting}
+&&\\*
+\end{lstlisting}
+eingefügt.
+
+Bei den Auswahllisten wird der Parameter "`popdown=true"' gesetzt. Alle
+Elemente (mit Ausnahme der Checkboxen und der von/bis-Textfelder)
+erhalten den Parameter "`width=20em"'.
+\lstinputlisting{../examples/ex0003.tex}
+Verbleibende Kritikpunkte:
+\begin{itemize}
+\item Die Beschriftungen befinden sich auf anderer Höhe als
+ die vom Nutzer eingegebenen Texte.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0009.tex b/info/pdf-forms-tutorial/de/forms-src/fde0009.tex
new file mode 100644
index 0000000000..7f91cc50aa
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0009.tex
@@ -0,0 +1,17 @@
+Das Problem der unterschiedlichen Höhen resultiert aus der äußeren und inneren
+Umrandung der Formularelemente. Diese Umrandungen sind bei normalem Text
+nicht vorhanden.
+
+Deshalb werden für die Beschriftungen ebenfalls Textfelder verwendet,
+diese sind allerdings nicht editierbar und haben eine weiße Umrandung.
+Diese wird mit
+\begin{lstlisting}
+bordercolor={1 1 1}
+\end{lstlisting}
+eingestellt.\\
+Mit
+\begin{lstlisting}
+align=2
+\end{lstlisting}
+wird der Text rechtsbündig eingestellt.
+\lstinputlisting{../examples/ex0004.tex}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0010.tex b/info/pdf-forms-tutorial/de/forms-src/fde0010.tex
new file mode 100644
index 0000000000..98220eaf67
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0010.tex
@@ -0,0 +1,7 @@
+Mit
+\begin{lstlisting}
+bordercolor={0.65 0.79 0.94}
+\end{lstlisting}
+wird für alle Formularelemente hellblau als Umrandungsfarbe
+eingestellt.
+\lstinputlisting{../examples/ex0005.tex}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0011.tex b/info/pdf-forms-tutorial/de/forms-src/fde0011.tex
new file mode 100644
index 0000000000..d26d260d02
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0011.tex
@@ -0,0 +1,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}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0012.tex b/info/pdf-forms-tutorial/de/forms-src/fde0012.tex
new file mode 100644
index 0000000000..2472a89e00
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0012.tex
@@ -0,0 +1,65 @@
+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}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0013.tex b/info/pdf-forms-tutorial/de/forms-src/fde0013.tex
new file mode 100644
index 0000000000..f7ad901288
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0013.tex
@@ -0,0 +1,20 @@
+Ereignisse können nicht nur vom Dokument sondern auch von einzelnen
+Formularfeldern ausgelöst werden. Im Beispiel wird der Auswahlliste
+\textit{zeit} der Parameter
+\begin{lstlisting}
+validate={validateTime();}
+\end{lstlisting}
+übergeben. Immer dann, wenn das Eingabefeld verlassen wird, wird die
+Funktion \textit{validateTime();\/} aufgerufen. Diese macht mit
+\begin{lstlisting}
+this.getField("von").display = display.visible;
+this.getField("bis").display = display.visible;
+\end{lstlisting}
+bzw.
+\begin{lstlisting}
+this.getField("von").display = display.hidden;
+this.getField("bis").display = display.hidden;
+\end{lstlisting}
+die Eingabefelder
+\textit{von\/} und \textit{bis\/} sichtbar bzw. unsichtbar.
+\lstinputlisting{../examples/ex0010.tex}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0014.tex b/info/pdf-forms-tutorial/de/forms-src/fde0014.tex
new file mode 100644
index 0000000000..3a33dae410
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0014.tex
@@ -0,0 +1,13 @@
+In der Auswahlliste \textit{abt\/} soll es nicht nur die Auswahl eines
+vorhandenen Elementes sondern auch die Eingabe von Text möglich sein.
+Zu diesem Zweck wird beim Anlegen der Liste der Parameter
+\begin{lstlisting}
+combo=true
+\end{lstlisting}
+mit angegeben. Da dieser allein nicht immer genügt, wird zusätzlich
+noch eine JavaScript-Zeile
+\begin{lstlisting}
+this.getField("abt").editable = true;
+\end{lstlisting}
+in \textit{myFirstJavaScriptFunction()\/} eingefügt.
+\lstinputlisting{../examples/ex0011.tex}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0015.tex b/info/pdf-forms-tutorial/de/forms-src/fde0015.tex
new file mode 100644
index 0000000000..a60396f628
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0015.tex
@@ -0,0 +1,9 @@
+Es soll ein Formular entworfen werden, mit dem Softwarelizenzen sowie
+die Installation der Software durch fachkundiges Personal angefordert
+werden können.
+
+Die Angaben, wer die Installation anfordert und auf welchem PC die
+Software benötigt wird, werden in Textfelder eingegeben.\\
+Für die Auswahl der Software werden mehrere Auswahllisten bereitgestellt
+mit jeweils dem gleichen Inhalt. Die Auswahllisten sollen editierbar
+sein, falls Spezialsoftware benötigt wird.
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0016.tex b/info/pdf-forms-tutorial/de/forms-src/fde0016.tex
new file mode 100644
index 0000000000..36bf03936c
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0016.tex
@@ -0,0 +1,32 @@
+Die Auswahlmöglichkeiten in Auswahllisten können auch per JavaScript
+eingestellt werden.\\
+Dies ist sinnvoll, wenn mehrere Listen mit den gleichen Auswahlmöglichkeiten
+versehen werden sollen oder wenn viele Auswahlmöglichkeiten bestehen.
+In beiden Fällen wird die Übersichtlichkeit der \LaTeX{}-Quelle erhöht.
+
+Die Auswahlmöglichkeiten werden als Array angegeben. Jedes Element
+des Arrays ist seinerseits wiederum ein Array mit zwei Elementen. Das
+erste Element ist der Text, der in der Auswahlliste angezeigt werden soll.
+Das zweite Element ist eine Abkürzung, um die Auswahlmöglichkeit per
+JavaScript ansprechen zu können.\\
+Die Auswahlmöglichkeiten für ex0101 werden in einem Array
+\textit{softwareAuswahl\/} aufgeführt:
+\begin{lstlisting}
+var softwareAuswahl = [
+ [ "", ""],
+ [ "Betriebssystem", "os" ],
+ [ "Textverarbeitung", "tp" ],
+ [ "Tabellenkalkulation", "sc" ],
+ [ "Präsentationsprogramm", "pp" ],
+ [ "E-Mail-Client", "mc" ],
+ [ "Web browser", "wb" ],
+ [ "Mathematik-Software", "ms" ],
+ [ "PDF-Anzeigeprogramm", "pv" ]
+];
+\end{lstlisting}
+Über die \textit{setItems()\/}-Methode
+\begin{lstlisting}
+this.getField("sw01").setItems(softwareAuswahl);
+\end{lstlisting}
+wird das Array mit den entsprechenden Auswahllisten verknüpft.
+\lstinputlisting{../examples/ex0101.tex}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0017.tex b/info/pdf-forms-tutorial/de/forms-src/fde0017.tex
new file mode 100644
index 0000000000..0f575f8831
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0017.tex
@@ -0,0 +1,7 @@
+Das dritte Formular soll als interaktive Anwendung arbeiten, ein Klick
+auf einen Button soll eine Aktion auslösen.
+
+Im Beispiel führen wir eine Zinseszins-Berechnung durch. Als Eingabedaten
+werden eine Anlagesumme in \texteuro{}, ein effektiver Jahreszins in \%
+und ein Anlagezeitraum in Jahren angegeben. Über einen Button wird die
+Berechnung der Auszahlungssumme angestoßen, diese wird dann angezeigt.
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0018.tex b/info/pdf-forms-tutorial/de/forms-src/fde0018.tex
new file mode 100644
index 0000000000..e7498a5646
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0018.tex
@@ -0,0 +1,28 @@
+Im Gegensatz zu den vorangegangenen Formularen wird das dritte Formular
+nicht gedruckt sondern ausschließlich online benutzt. Als Papierformat
+wird deshalb nicht A4 benutzt sondern \(5.2057\,\textrm{Zoll}\,\times\,3.75\,\textrm{Zoll}\) (siehe
+Zeilen 8 und 9). Mit dem geometry-Package wird ein Rand von einem
+halben Zoll an den Seiten eingestellt.
+
+Mit dem Package fancyhdr werden Kopf- und Fußzeile gestaltet, siehe
+Zeilen 12\ldots{}15. Das Formular soll -- wenn es mehrseitig ist --
+seitenweise gescrollt werden ("`pdfpagelayout=SinglePage"' in
+Zeile 18).
+
+Da kein Ausdrucken vorgesehen ist, kann ein farbiger Hintergrund
+verwendet werden.
+
+Mit dem Argument
+\begin{lstlisting}
+onclick={doCalculation()}
+\end{lstlisting}
+wird eine JavaScript-Funktion vorgegeben, die beim Betätigen des
+Buttons ausgeführt wird. Hier wird kein Semikolon an den Funktionsaufruf
+angehangen.
+
+Die Funktion \textit{doCalculation()\/} liest die Werte aus den
+Eingabefeldern aus und nimmt eine Berechnung vor. Das Ergebis
+wird gerundet, auf zwei Nachkommastellen getrimmt, in einen String
+gewandelt und in einem Textfeld ausgegeben.
+
+\lstinputlisting{../examples/ex0201.tex}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0019.tex b/info/pdf-forms-tutorial/de/forms-src/fde0019.tex
new file mode 100644
index 0000000000..06fd0b16c0
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0019.tex
@@ -0,0 +1,42 @@
+\begin{itemize}
+\item Version 0.9.5 (07.02.2008)\\*
+zeigt in einem zusätzlichen Abschnitt, wie Online-Hilfe mit
+\textsc{pdf}-Annotationen (Notizen) oder mit Tooltips realisiert
+werden kann.
+\item Version 0.9.4 (20.06.2007)\\*
+enthält einen zusätzlichen neuen Abschnitt, wie die Pakete
+insdljs und inputenc kombiniert werden können. Dabei werden Sonderzeichen,
+die von inputenc umcodiert werden, nicht mehr direkt sondern als
+JavaScript-Unicode-Zeichen eingegeben.
+\item Version 0.9.3 (15.06.2007)\\*
+enthält korrigierte Optionen für das Laden des hyperref-Packages.
+\begin{lstlisting}
+pdfpagemode=UseNone
+\end{lstlisting}
+wurde ersetzt durch
+\begin{lstlisting}
+pdfpagemode=UseNone
+\end{lstlisting}
+\item Version 0.9.2 (14.06.2007)\\*
+verwendet andere Fonts als die vorherigen Versionen. Die Präambel wurde
+von einer anderen Anleitung kopiert, die u.\,a. auch mathematische
+Sachverhalte darstellte und für diesen Zweck Mathematikfonts einband.\\
+Diese Mathematikfonts werden hier nicht benötigt.\\
+Gleichzeitig wird hier das Paket "`pdfcprot"' anstelle des vorher
+genutzten Paketes "`microtype"' für den optischen Randausgleich
+genutzt.
+\item Version 0.9.1 (13.06.2007)\\*
+enthält Korrekturen im Abschnitt "`Schriftarten"'. Fälschlicherweise
+wurde in Version 0.9.0 behauptet,
+\begin{lstlisting}
+\usepackage[T1]{fontenc}
+\end{lstlisting}
+würde für die Verwendung von Type-1-Fonts sorgen. Dies stimmt nicht,
+die Anweisung bewirkt die Verwendung des T1-Font-Encoding-Vektors, wenn
+Type-1-Fonts benutzt werden.
+\item Version 0.9.0\\*
+ist die erste auf \textsc{ctan} veröffentlichte Version.\\*
+Die englischsprachige Version wurde noch nicht korrekturgelesen,
+möglicherweise sind Verbesserungen hinsichtlich Ausdruck, Rechtschreibung
+und Grammatik erforderlich.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0020.tex b/info/pdf-forms-tutorial/de/forms-src/fde0020.tex
new file mode 100644
index 0000000000..9f8617974f
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0020.tex
@@ -0,0 +1,45 @@
+\label{sec:fde0020}
+Das Paket inputenc sorgt dafür, dass bestimmte Zeichen -- z.\,B. deutsche
+Umlaute -- in entsprechenden \LaTeX{}-Code umgewandelt werden.
+Diese Umwandlung ist im "`normalen"' Text durchaus gewünscht, im
+JavaScript-Code jedoch nicht.
+
+Um die Umwandlung in JavaScript-Code zu verhindern, sollten die entsprechenden
+Zeichen dort nicht direkt eingegeben werden sondern als
+\textsc{ecma}-Script-Unicodezeichen. Einige ausgewählte Unicode-Codierungen
+sind in Tabelle~\vref{tab:umlauts} dargestellt.
+
+\begin{longtable}{|r|l|}\caption{JavaScript-Unicode für deutsche Umlaute}\label{tab:umlauts}\\
+\hline
+&\\*[-0.9em]\multicolumn{1}{|c|}{\textbf{Zeichen}}&\multicolumn{1}{c|}{\textbf{JavaScript-Unicode}}\\
+\hline
+\endfirsthead
+\hline
+&\\*[-0.9em]\multicolumn{2}{|r|}{\textsl{Fortsetzung}}\\
+\hline
+\endhead
+&\\*[-0.9em]\multicolumn{2}{|r|}{\textsl{wird fortgesetzt}}\\
+\hline
+\endfoot
+\hline
+\endlastfoot
+\hline
+&\\*[-0.9em]ä&\textbackslash{}u00E4\\
+\hline
+&\\*[-0.9em]ö&\textbackslash{}u00F6\\
+\hline
+&\\*[-0.9em]ü&\textbackslash{}u00FC\\
+\hline
+&\\*[-0.9em]A&\textbackslash{}u00C4\\
+\hline
+&\\*[-0.9em]Ö&\textbackslash{}u00D6\\
+\hline
+&\\*[-0.9em]Ü&\textbackslash{}u00DC\\
+\hline
+&\\*[-0.9em]ß&\textbackslash{}u00DF\\
+\end{longtable}
+\clearpage
+Hier ein Beispiel für die Verwendung von JavaScript-Unicode-Zeichen
+(Variable \textit{theText\/}):
+\lstinputlisting{../examples/ex0301.tex}
+\clearpage
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0021.tex b/info/pdf-forms-tutorial/de/forms-src/fde0021.tex
new file mode 100644
index 0000000000..c27bcdff4e
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0021.tex
@@ -0,0 +1,22 @@
+Dem Nutzer, der das Formular ausfült, kann auf verschiedene Weise
+Online-Hilfe zur Verfüung gestellt werden:
+\begin{itemize}
+\item \textsc{pdf}-Annotationen (Notizen)\\
+Im Text werden Notizen durch ein Icon angezeigt. Bewegt der Nutzer die
+Maus über das Icon, wird der Notiztext als Tooltip angezeigt.
+Ein Doppelklick auf das Icon öffnet die Notiz.\\
+Vorteil dieses Verfahrens: Es ist nicht notwendig, dass im Anzeigeprogramm
+JavaScript aktiviert ist. Nachteilig ist, dass die zusäzlichen
+Icons zum einen Platz benötigen und zum anderen das Formular unübersichtlicher
+wird.
+\item Tooltips\\
+Tooltips werden angezeigt, wenn der Nutzer die Maus über ein Formularfeld
+bewegt und die Maus dort verharren läst. Tooltips sind den meisten
+Nutzern bereits aus anderen Anwendungen bekannt. Da der Tooltip-Text
+(derzeit noch?\footnote{Stand: 07.02.2008}) nicht über die
+Formularfeld-Optionen von hyperref
+gesetzt werden kann, ist JavaScript im Anzeigeprogramm erforderlich,
+um Formularfeldern Tooltip-Texte zuzuweisen.
+\end{itemize}
+Die beiden Verfahren können auch kombiniert werden.
+\clearpage
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0022.tex b/info/pdf-forms-tutorial/de/forms-src/fde0022.tex
new file mode 100644
index 0000000000..989476d03e
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0022.tex
@@ -0,0 +1,24 @@
+Um nach einem Formularfeld ein Icon für Online-Hilfe anzubringen, kann
+folgender Code genutzt werden:
+\begin{lstlisting}
+~\pdfannot width 20pt {
+ /Subtype /Text
+ /Name /Help
+ /C [0.65 0.79 0.94]
+ /T (Notiz-Überschrift)
+ /Contents (Der Hilfetext der Notiz)
+}\(\qquad\)
+\end{lstlisting}
+Das Notiz-Icon "`verbraucht"' nach Ansicht von pdf\LaTeX{} keinen Platz,
+daher wird ein großer Leerraum nach der \textit{pdfannot\/}-Anweisung
+eingefügt.\\
+Vor der Notiz wird ebenfalls etwas Leerraum eingefügt, um
+Abstand zum Formularfeld zu halten.
+
+"`/Name /Help"' wählt ein Icon für die Notiz aus, in diesem Fall das
+Fragezeichen.
+Der Eintrag "`/C"' legt die Farbe für das Icon fest. Hier sollte dieselbe
+Farbe wie für die Formularfelder genutzt werden.
+
+Beispiel ex0012 demonstriert die Verwendung von \textsc{pdf}-Annotationen für
+die Hilfe.
diff --git a/info/pdf-forms-tutorial/de/forms-src/fde0023.tex b/info/pdf-forms-tutorial/de/forms-src/fde0023.tex
new file mode 100644
index 0000000000..e6e98ccc2b
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/fde0023.tex
@@ -0,0 +1,12 @@
+Tooltip-Text kann einem Formularfeld mit der JavaScript-Anweisung
+\begin{lstlisting}
+this.getField("feldname").userName = "Das ist ein Hilfetext.";
+\end{lstlisting}
+hinzugefügt werden. Diese Anweisung sollte in der Funktion stehen,
+die beim Öffnen des Dokumentes automatisch ausgeführt wird.
+
+Beispiel ex0013 zeigt, wie Tooltip-Texte gesetzt werden. Wird das
+Paket "`inputenc"' genutzt, müssen deutsche Umlaute im
+JavaScript-Code durch eine spezielle Notation ausgedrückt werden,
+siehe Abschnitt~\vref{sec:fde0020}.
+\clearpage
diff --git a/info/pdf-forms-tutorial/de/forms-src/forms.tex b/info/pdf-forms-tutorial/de/forms-src/forms.tex
new file mode 100644
index 0000000000..0ae93bc4bf
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms-src/forms.tex
@@ -0,0 +1,104 @@
+\documentclass[ngerman,12pt,a4paper,origlongtable]{scrartcl}
+\usepackage{ngerman}
+\usepackage{ifpdf}
+\usepackage[latin1]{inputenc}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+% \usepackage[intlimits]{amsmath}
+% \usepackage{amsfonts,amssymb,amscd}
+% \usepackage{trfsigns}
+\usepackage{array}
+\usepackage{enumerate}
+\usepackage{longtable}
+\usepackage{latexsym}
+\usepackage{listings}
+\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
+\usepackage[ngerman]{varioref}
+\usepackage{makeidx}
+\usepackage{color}
+\ifpdf
+\usepackage[activate=normal]{pdfcprot}
+% \usepackage{microtype}
+\usepackage[pdftex]{graphicx}
+\usepackage{epstopdf}
+\pdfcompresslevel=9
+\usepackage[
+ pdftex,
+ a4paper=true,
+ pdftitle={PDF-Formulare mit pdflatex, hyperref und insdljs},
+ pdfsubject={PDF-Formulare},
+ pdfauthor={Dirk Krause},
+ colorlinks=true,
+ bookmarks,
+ bookmarksnumbered,
+ linkcolor=black,
+ pdfpagemode=UseNone,
+ pdfstartview={XYZ 0 835 1.25}
+]{hyperref}
+\usepackage{attachfile}
+\else
+\usepackage[dvips]{graphicx}
+\DeclareGraphicsRule{.png}{eps}{.bb}{`bmeps #1}
+\usepackage[dvips]{hyperref}
+\usepackage{attachfile}
+\fi
+% \definecolor{red}{rgb}{1,0,0}
+
+\def\theyear{2007}
+
+% \parindent0cm
+\newcommand{\pdflatex}[0]{pdf"|latex}
+\author{Dirk~Krause}
+\title{PDF-Formulare mit \pdflatex{}, hyperref und insdljs}
+\include{cover}
+\renewcommand*{\sectfont}{\bfseries}
+\makeindex
+\hyphenation{
+Ja-va-Script
+}
+
+\begin{document}
+\begin{sloppy}
+\maketitle\clearpage
+\tableofcontents\clearpage
+\section{Einführung}\input{fde0001}\clearpage
+\section{Formular-Support in hyperref}\input{fde0002}\clearpage
+\section{Vorbetrachtungen}
+\subsection{Präambel}\input{fde0003}\clearpage
+\subsection{Eigenschaften der Formularelemente}\input{fde0004}\clearpage
+\section{Das erste Formular}
+\subsection{Aufgabenstellung}\input{fde0005}
+\subsection{Erster Anlauf: ex0001}\input{fde0006}\clearpage
+\subsection{Anordnung in Tabelle: ex0002}\input{fde0007}\clearpage
+\subsection{Zwischenräume und Feldbreiten: ex0003}\input{fde0008}\clearpage
+\subsection{Gleiche Texthöhe: ex0004}\input{fde0009}\clearpage
+\subsection{Farbe: ex0005}\input{fde0010}\clearpage
+\subsection{JavaScript: ex0006}\input{fde0011}\clearpage
+\subsection{Dokument-Ereignisse: ex0008 und ex0009}\input{fde0012}\clearpage
+\subsection{Formularfeld-Ereignisse: ex0010}\input{fde0013}\clearpage
+\subsection{Editierbare Auswahlliste: ex0011}\input{fde0014}\clearpage
+\subsection{Online-Hilfe}
+\subsubsection{Übersicht}\input{fde0021}
+\subsubsection{PDF-Annotationen}\input{fde0022}
+\subsubsection{Tooltips}\input{fde0023}
+\section{Ein weiteres Formular}
+\subsection{Aufgabenstellung}\input{fde0015}
+\subsection{Auswahllisten mit JavaScript initialisieren: ex0101}\input{fde0016}\clearpage
+\section{Formular Nummer drei: Interaktive Anwendung}
+\subsection{Aufgabenstellung}\input{fde0017}
+\subsection{Reaktion auf Button: ex0201}\input{fde0018}\clearpage
+\section{Formular Nummer vier: inputenc und insdljs}\input{fde0020}\clearpage
+\clearpage
+\appendix
+\section{Historie}\input{fde0019}\clearpage
+\input{fdl.tex}\clearpage
+\bibliographystyle{alpha}
+\bibliography{bib}
+\clearpage
+\printindex
+\end{sloppy}
+\end{document}
+
diff --git a/info/pdf-forms-tutorial/de/forms.pdf b/info/pdf-forms-tutorial/de/forms.pdf
new file mode 100644
index 0000000000..e779e7c5e7
--- /dev/null
+++ b/info/pdf-forms-tutorial/de/forms.pdf
Binary files differ
diff --git a/info/pdf-forms-tutorial/en/examples/Makefile b/info/pdf-forms-tutorial/en/examples/Makefile
new file mode 100644
index 0000000000..4cddc10f89
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/Makefile
@@ -0,0 +1,21 @@
+
+ALLFORMS1= ex0001.pdf ex0002.pdf ex0003.pdf ex0004.pdf ex0005.pdf ex0006.pdf
+ALLFORMS2= ex0007.pdf ex0008.pdf ex0009.pdf ex0010.pdf ex0011.pdf ex0101.pdf
+ALLFORMS3= ex0201.pdf ex0301.pdf ex0012.pdf ex0013.pdf
+ALLFORMS= $(ALLFORMS1) $(ALLFORMS2) $(ALLFORMS3)
+
+all: allforms
+
+allforms: $(ALLFORMS)
+
+.SUFFIXES:
+
+.SUFFIXES: .pdf .tex
+
+.tex.pdf:
+ pdflatex $*
+ pdflatex $*
+ pdflatex $*
+
+clean:
+ -rm -fr *.bbl *.blg *.out *.djs ex0*.pdf ex0*.aux ex0*.log
diff --git a/info/pdf-forms-tutorial/en/examples/ex0001.tex b/info/pdf-forms-tutorial/en/examples/ex0001.tex
new file mode 100644
index 0000000000..959667e1d0
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0001.tex
@@ -0,0 +1,40 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\textbf{Employee}\\
+First name: \TextField[name=vorname]{}\\
+Name: \TextField[name=name]{}\\
+Department: \ChoiceMenu[name=abt]{}{%
+Sales=v,Production=f,Service=s}\\
+\textbf{Time}\\
+Time: \ChoiceMenu[name=zeit]{}{%
+limited=b,unlimited=u}\\
+from: \TextField[name=from]{}\\
+until: \TextField[name=until]{}\\
+\textbf{Doors}\\
+Front door: \CheckBox[name=ht]{}\\
+Ground floor: \CheckBox[name=e1]{}\\
+First floor: \CheckBox[name=e2]{}\\
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0002.tex b/info/pdf-forms-tutorial/en/examples/ex0002.tex
new file mode 100644
index 0000000000..986e48c68c
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0002.tex
@@ -0,0 +1,55 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+First name:&%
+\TextField[name=vorname]{}\\
+Name:&%
+\TextField[name=name]{}\\
+Department:&%
+\ChoiceMenu[name=abt]{}{%
+Sales=v,Production=f,Service=s}\\
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+Time:&%
+\ChoiceMenu[name=zeit]{}{%
+limited=b,unlimited=u}\\
+from:&%
+\TextField[name=from]{}\\
+until:&%
+\TextField[name=until]{}\\
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Doors}}\\
+Front door:&%
+\CheckBox[name=ht,width=1.2em]{}\\
+Ground floor:&%
+\CheckBox[name=e1,width=1.2em]{}\\
+First floor:&%
+\CheckBox[name=e2,width=1.2em]{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0003.tex b/info/pdf-forms-tutorial/en/examples/ex0003.tex
new file mode 100644
index 0000000000..fd35ecd9a2
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0003.tex
@@ -0,0 +1,56 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]First name:&%
+\TextField[name=vorname,width=20em]{}\\
+&\\*[-0.9em]Name:&%
+\TextField[name=name,width=20em]{}\\
+&\\*[-0.9em]Department:&%
+\ChoiceMenu[{}={},name=abt,width=20em,popdown=true]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]Time:&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true]{}{%
+limited=b,unlimited=u}\\
+&\\*[-0.9em]from:&%
+\TextField[name=from,width=10em]{}\\
+&\\*[-0.9em]until:&%
+\TextField[name=until,width=10em]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Doors}}\\
+&\\*[-0.9em]Front door:&%
+\CheckBox[name=ht,width=1.2em]{}\\
+&\\*[-0.9em]Ground floor:&%
+\CheckBox[name=e1,width=1.2em]{}\\
+&\\*[-0.9em]First floor:&%
+\CheckBox[name=e2,width=1.2em]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0004.tex b/info/pdf-forms-tutorial/en/examples/ex0004.tex
new file mode 100644
index 0000000000..88f7f3a5d9
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0004.tex
@@ -0,0 +1,60 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,%
+align=2,bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0005.tex b/info/pdf-forms-tutorial/en/examples/ex0005.tex
new file mode 100644
index 0000000000..f9198c8257
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0005.tex
@@ -0,0 +1,70 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,pagebackref,pdfhighlight={/N}
+]{hyperref}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0006.tex b/info/pdf-forms-tutorial/en/examples/ex0006.tex
new file mode 100644
index 0000000000..4bdd4ab031
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0006.tex
@@ -0,0 +1,87 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaaaa]{exaaaa}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert("The form was opened.");
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{%
+Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0007.tex b/info/pdf-forms-tutorial/en/examples/ex0007.tex
new file mode 100644
index 0000000000..9ba5c5122e
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0007.tex
@@ -0,0 +1,86 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaaab]{exaaab}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert("The form was opened.");
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0008.tex b/info/pdf-forms-tutorial/en/examples/ex0008.tex
new file mode 100644
index 0000000000..373a7835a4
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0008.tex
@@ -0,0 +1,103 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaac]{exaaac}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function willPrint()
+{
+ app.alert("The document will be printed.");
+}
+
+function didPrint()
+{
+ app.alert("The document was printed.");
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert("The form was opened.");
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0009.tex b/info/pdf-forms-tutorial/en/examples/ex0009.tex
new file mode 100644
index 0000000000..8c5468ef83
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0009.tex
@@ -0,0 +1,174 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaad]{exaaad}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("from").fillColor = color.white;
+ this.getField("until").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("from").strokeColor = color.black;
+ this.getField("until").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("from").textFont = font.Helv;
+ this.getField("until").textFont = font.Helv;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("from").fillColor = newcolor;
+ this.getField("until").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("from").strokeColor = newcolor;
+ this.getField("until").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("from").textFont = font.HelvB;
+ this.getField("until").textFont = font.HelvB;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0010.tex b/info/pdf-forms-tutorial/en/examples/ex0010.tex
new file mode 100644
index 0000000000..f21eaf1415
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0010.tex
@@ -0,0 +1,193 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("from").fillColor = color.white;
+ this.getField("until").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("from").strokeColor = color.black;
+ this.getField("until").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("from").textFont = font.Helv;
+ this.getField("until").textFont = font.Helv;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("from").fillColor = newcolor;
+ this.getField("until").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("from").strokeColor = newcolor;
+ this.getField("until").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("from").textFont = font.HelvB;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+ this.getField("until").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unlimited")) {
+ this.getField("from").display = display.hidden;
+ this.getField("until").display = display.hidden;
+ } else {
+ this.getField("from").display = display.visible;
+ this.getField("until").display = display.visible;
+ this.getField("from").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0011.tex b/info/pdf-forms-tutorial/en/examples/ex0011.tex
new file mode 100644
index 0000000000..64349d9f3d
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0011.tex
@@ -0,0 +1,194 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("from").fillColor = color.white;
+ this.getField("until").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("from").strokeColor = color.black;
+ this.getField("until").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("from").textFont = font.Helv;
+ this.getField("until").textFont = font.Helv;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("from").fillColor = newcolor;
+ this.getField("until").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("from").strokeColor = newcolor;
+ this.getField("until").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("from").textFont = font.HelvB;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+ this.getField("until").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unlimited")) {
+ this.getField("from").display = display.hidden;
+ this.getField("until").display = display.hidden;
+ } else {
+ this.getField("from").display = display.visible;
+ this.getField("until").display = display.visible;
+ this.getField("from").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("abt").editable = true;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,combo=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0012.tex b/info/pdf-forms-tutorial/en/examples/ex0012.tex
new file mode 100644
index 0000000000..b910505e06
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0012.tex
@@ -0,0 +1,236 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("from").fillColor = color.white;
+ this.getField("until").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("from").strokeColor = color.black;
+ this.getField("until").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("from").textFont = font.Helv;
+ this.getField("until").textFont = font.Helv;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("from").fillColor = newcolor;
+ this.getField("until").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("from").strokeColor = newcolor;
+ this.getField("until").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("from").textFont = font.HelvB;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+ this.getField("until").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unlimited")) {
+ this.getField("from").display = display.hidden;
+ this.getField("until").display = display.hidden;
+ } else {
+ this.getField("from").display = display.visible;
+ this.getField("until").display = display.visible;
+ this.getField("from").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("abt").editable = true;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (First name)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please enter your surname here.)
+}\(\qquad\)\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Name)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please enter your name here.)
+}\(\qquad\)\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,combo=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Department)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please choose your department. If your department is not yet listed, please enter the department name.)
+}\(\qquad\)\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Time)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please choose to obtain the key for a limited or unlimited time. If you choose "limited" you have to specify start and end date too.)
+}\(\qquad\)\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Front door)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please activate this checkbox to obtain a key opening the front door.)
+}\(\qquad\)\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (Ground floor)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please activate this checkbox to obtain a key opening the ground floor.)
+}\(\qquad\)\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}~\pdfannot width 20pt {
+ /Subtype /Text
+ /T (First floor)
+ /C [0.65 0.79 0.94]
+ /Name /Help
+ /Contents (Please activate this checkbox to obtain a key opening the first floor.)
+}\(\qquad\)\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0013.tex b/info/pdf-forms-tutorial/en/examples/ex0013.tex
new file mode 100644
index 0000000000..aeb163b081
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0013.tex
@@ -0,0 +1,203 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},pdfsubject={Key},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaae]{exaaae}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("name").fillColor = color.white;
+ this.getField("abt").fillColor = color.white;
+ this.getField("zeit").fillColor = color.white;
+ this.getField("from").fillColor = color.white;
+ this.getField("until").fillColor = color.white;
+ this.getField("ht").fillColor = color.white;
+ this.getField("e1").fillColor = color.white;
+ this.getField("e2").fillColor = color.white;
+
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("name").strokeColor = color.black;
+ this.getField("abt").strokeColor = color.black;
+ this.getField("zeit").strokeColor = color.black;
+ this.getField("from").strokeColor = color.black;
+ this.getField("until").strokeColor = color.black;
+ this.getField("ht").strokeColor = color.black;
+ this.getField("e1").strokeColor = color.black;
+ this.getField("e2").strokeColor = color.black;
+
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").textFont = font.Helv;
+ this.getField("abt").textFont = font.Helv;
+ this.getField("zeit").textFont = font.Helv;
+ this.getField("from").textFont = font.Helv;
+ this.getField("until").textFont = font.Helv;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("name").fillColor = newcolor;
+ this.getField("abt").fillColor = newcolor;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("from").fillColor = newcolor;
+ this.getField("until").fillColor = newcolor;
+ this.getField("ht").fillColor = newcolor;
+ this.getField("e1").fillColor = newcolor;
+ this.getField("e2").fillColor = newcolor;
+
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("abt").strokeColor = newcolor;
+ this.getField("zeit").strokeColor = newcolor;
+ this.getField("from").strokeColor = newcolor;
+ this.getField("until").strokeColor = newcolor;
+ this.getField("ht").strokeColor = newcolor;
+ this.getField("e1").strokeColor = newcolor;
+ this.getField("e2").strokeColor = newcolor;
+
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("abt").textFont = font.HelvB;
+ this.getField("zeit").textFont = font.HelvB;
+ this.getField("from").textFont = font.HelvB;
+ this.getField("from").textColor = color.black;
+ this.getField("until").textColor = color.black;
+ this.getField("until").textFont = font.HelvB;
+}
+
+function validateTime()
+{
+ this.delay = true;
+ if((event.value == "u") || (event.value == "unlimited")) {
+ this.getField("from").display = display.hidden;
+ this.getField("until").display = display.hidden;
+ } else {
+ this.getField("from").display = display.visible;
+ this.getField("until").display = display.visible;
+ this.getField("from").setFocus();
+ }
+ this.delay = false;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("abt").currentValueIndices = 0;
+ this.getField("abt").editable = true;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("vorname").setFocus();
+ this.getField("vorname").userName = "Please enter your surname here.";
+ this.getField("name").userName = "Please enter your name here.";
+ this.getField("abt").userName = "Please select your department. If your department is not yet listed, enter the department name manually.";
+ this.getField("zeit").userName = "Please chose whether to obtain the key for a limited or unlimited time.";
+ this.getField("from").userName = "Please enter the start date here.";
+ this.getField("until").userName = "Please enter the end date here.";
+ this.getField("ht").userName = "Please activate this checkbox to obtain a key opening the front door.";
+ this.getField("e1").userName = "Please activate this checkbox to obtain a key opening the ground floor.";
+ this.getField("e2").userName = "Please activate this checkbox to obtain a key opening the first floor.";
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for a key}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Employee}}\\
+&\\*[-0.9em]\textforlabel{vn}{First name:}&%
+\TextField[name=vorname,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{nn}{Name:}&%
+\TextField[name=name,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{ab}{Department:}&%
+\ChoiceMenu[name=abt,width=20em,popdown=true,combo=true,value=v,%
+bordercolor={0.65 0.79 0.94}]{}{%
+Sales=v,Production=f,Service=s}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{\textbf{Time}}\\
+&\\*[-0.9em]\textforlabel{z}{Time:}&%
+\ChoiceMenu[name=zeit,width=20em,popdown=true,value=u,%
+validate={validateTime();},%
+bordercolor={0.65 0.79 0.94}]{}{%
+unlimited=u,limited=b}\\
+&\\*[-0.9em]\textforlabel{v}{from:}&%
+\TextField[name=from,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{b}{until:}&%
+\TextField[name=until,width=10em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+&\\*[-0.9em]\multicolumn{2}{|c|}{%
+\textbf{Doors}}\\
+&\\*[-0.9em]\textforlabel{th}{Front door:}&%
+\CheckBox[name=ht,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t1}{Ground floor:}&%
+\CheckBox[name=e1,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{t2}{First floor:}&%
+\CheckBox[name=e2,width=1.2em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0101.tex b/info/pdf-forms-tutorial/en/examples/ex0101.tex
new file mode 100644
index 0000000000..4f26e5933e
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0101.tex
@@ -0,0 +1,259 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{ABC, Inc.}\chead{}\rhead{XYZ Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Software installation request},pdfsubject={Software},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\immediate\pdfobj {
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\begin{insDLJS}[exaaba]{exaaba}{Document Level JavaScript}
+
+// indicate that the function was not yet run
+var done = 0;
+
+function colorsPrinting()
+{
+ this.getField("vorname").fillColor = color.white;
+ this.getField("vorname").strokeColor = color.black;
+ this.getField("vorname").textFont = font.Helv;
+ this.getField("name").fillColor = color.white;
+ this.getField("name").strokeColor = color.black;
+ this.getField("name").textFont = font.Helv;
+ this.getField("inventory").fillColor = color.white;
+ this.getField("inventory").strokeColor = color.black;
+ this.getField("inventory").textFont = font.Helv;
+ this.getField("sw01").fillColor = color.white;
+ this.getField("sw01").strokeColor = color.black;
+ this.getField("sw01").textFont = font.Helv;
+ this.getField("sw02").fillColor = color.white;
+ this.getField("sw02").strokeColor = color.black;
+ this.getField("sw02").textFont = font.Helv;
+ this.getField("sw03").fillColor = color.white;
+ this.getField("sw03").strokeColor = color.black;
+ this.getField("sw03").textFont = font.Helv;
+ this.getField("sw04").fillColor = color.white;
+ this.getField("sw04").strokeColor = color.black;
+ this.getField("sw04").textFont = font.Helv;
+ this.getField("sw05").fillColor = color.white;
+ this.getField("sw05").strokeColor = color.black;
+ this.getField("sw05").textFont = font.Helv;
+ this.getField("sw06").fillColor = color.white;
+ this.getField("sw06").strokeColor = color.black;
+ this.getField("sw06").textFont = font.Helv;
+ this.getField("sw07").fillColor = color.white;
+ this.getField("sw07").strokeColor = color.black;
+ this.getField("sw07").textFont = font.Helv;
+ this.getField("sw08").fillColor = color.white;
+ this.getField("sw08").strokeColor = color.black;
+ this.getField("sw08").textFont = font.Helv;
+ this.getField("sw09").fillColor = color.white;
+ this.getField("sw09").strokeColor = color.black;
+ this.getField("sw09").textFont = font.Helv;
+ this.getField("sw10").fillColor = color.white;
+ this.getField("sw10").strokeColor = color.black;
+ this.getField("sw10").textFont = font.Helv;
+}
+
+function colorsScreen()
+{
+
+ var newcolor = [ "RGB", 0.65, 0.79, 0.94];
+ this.getField("vorname").fillColor = newcolor;
+ this.getField("vorname").strokeColor = newcolor;
+ this.getField("vorname").textFont = font.HelvB;
+ this.getField("name").fillColor = newcolor;
+ this.getField("name").strokeColor = newcolor;
+ this.getField("name").textFont = font.HelvB;
+ this.getField("inventory").fillColor = newcolor;
+ this.getField("inventory").strokeColor = newcolor;
+ this.getField("inventory").textFont = font.HelvB;
+ this.getField("sw01").fillColor = newcolor;
+ this.getField("sw01").strokeColor = newcolor;
+ this.getField("sw01").textFont = font.HelvB;
+ this.getField("sw02").fillColor = newcolor;
+ this.getField("sw02").strokeColor = newcolor;
+ this.getField("sw02").textFont = font.HelvB;
+ this.getField("sw03").fillColor = newcolor;
+ this.getField("sw03").strokeColor = newcolor;
+ this.getField("sw03").textFont = font.HelvB;
+ this.getField("sw04").fillColor = newcolor;
+ this.getField("sw04").strokeColor = newcolor;
+ this.getField("sw04").textFont = font.HelvB;
+ this.getField("sw05").fillColor = newcolor;
+ this.getField("sw05").strokeColor = newcolor;
+ this.getField("sw05").textFont = font.HelvB;
+ this.getField("sw06").fillColor = newcolor;
+ this.getField("sw06").strokeColor = newcolor;
+ this.getField("sw06").textFont = font.HelvB;
+ this.getField("sw07").fillColor = newcolor;
+ this.getField("sw07").strokeColor = newcolor;
+ this.getField("sw07").textFont = font.HelvB;
+ this.getField("sw08").fillColor = newcolor;
+ this.getField("sw08").strokeColor = newcolor;
+ this.getField("sw08").textFont = font.HelvB;
+ this.getField("sw09").fillColor = newcolor;
+ this.getField("sw09").strokeColor = newcolor;
+ this.getField("sw09").textFont = font.HelvB;
+ this.getField("sw10").fillColor = newcolor;
+ this.getField("sw10").strokeColor = newcolor;
+ this.getField("sw10").textFont = font.HelvB;
+}
+
+function willPrint()
+{
+ this.delay = true;
+ colorsPrinting();
+ this.delay = false;
+}
+
+function didPrint()
+{
+ this.delay = true;
+ colorsScreen();
+ this.delay = false;
+}
+
+var softwareAuswahl = [
+ [ "", ""],
+ [ "Operating system", "os" ],
+ [ "Text processing", "tp" ],
+ [ "Spreadsheet calculation", "sc" ],
+ [ "Präsentationsprogramm", "pp" ],
+ [ "E-mail client", "mc" ],
+ [ "Web browser", "wb" ],
+ [ "Mathematics software", "ms" ],
+ [ "PDF viewer", "pv" ]
+];
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ this.delay = true;
+ colorsScreen();
+ this.getField("sw01").setItems(softwareAuswahl);
+ this.getField("sw01").currentValueIndices = 0;
+ this.getField("sw01").editable = true;
+ this.getField("sw02").setItems(softwareAuswahl);
+ this.getField("sw02").currentValueIndices = 0;
+ this.getField("sw02").editable = true;
+ this.getField("sw03").setItems(softwareAuswahl);
+ this.getField("sw03").currentValueIndices = 0;
+ this.getField("sw03").editable = true;
+ this.getField("sw04").setItems(softwareAuswahl);
+ this.getField("sw04").currentValueIndices = 0;
+ this.getField("sw04").editable = true;
+ this.getField("sw05").setItems(softwareAuswahl);
+ this.getField("sw05").currentValueIndices = 0;
+ this.getField("sw05").editable = true;
+ this.getField("sw06").setItems(softwareAuswahl);
+ this.getField("sw06").currentValueIndices = 0;
+ this.getField("sw06").editable = true;
+ this.getField("sw07").setItems(softwareAuswahl);
+ this.getField("sw07").currentValueIndices = 0;
+ this.getField("sw07").editable = true;
+ this.getField("sw08").setItems(softwareAuswahl);
+ this.getField("sw08").currentValueIndices = 0;
+ this.getField("sw08").editable = true;
+ this.getField("sw09").setItems(softwareAuswahl);
+ this.getField("sw09").currentValueIndices = 0;
+ this.getField("sw09").editable = true;
+ this.getField("sw10").setItems(softwareAuswahl);
+ this.getField("sw10").currentValueIndices = 0;
+ this.getField("sw10").editable = true;
+ this.getField("vorname").setFocus();
+ this.delay = false;
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section*{Request for software licenses and installation}
+\begin{Form}
+\begin{tabular}{|rr|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|c|}{\textbf{Systems owner}}\\
+&\\*[-0.9em]\textforlabel{l01}{First name:}&\TextField[%
+name=vorname,width=20em,bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\textforlabel{l02}{Name:}&\TextField[%
+name=name,width=20em,bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|c|}{\textbf{PC}}\\
+&\\*[-0.9em]\textforlabel{l03}{inventory number:}%
+&\TextField[name=inventory,width=20em,%
+bordercolor={0.65 0.79 0.94}]{}\\
+&\\*[-0.9em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|c|}{\textbf{Software}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw01,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw02,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw03,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw04,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw05,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw06,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw07,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw08,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw09,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{}\\*[-0.9em]
+\multicolumn{2}{|r|}{\ChoiceMenu[name=sw10,width=30em,%
+popdown=true,combo=true,value={},%
+bordercolor={0.65 0.79 0.94}]{}{}}\\
+\multicolumn{2}{|c|}{~}\\*\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0201.tex b/info/pdf-forms-tutorial/en/examples/ex0201.tex
new file mode 100644
index 0000000000..7108782c55
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0201.tex
@@ -0,0 +1,107 @@
+\documentclass{scrartcl}
+\setcounter{secnumdepth}{0}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\setlength{\paperwidth}{5.2075in}
+\setlength{\paperheight}{3.75in}
+\renewcommand*{\familydefault}{phv}
+\usepackage[pdftex,margin=0.5in]{geometry}
+\usepackage{fancyhdr}
+\lhead{Big Money, Inc.}\chead{}
+\rhead{Promises Dept.}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[pdftex,pdfpagelayout=SinglePage,%
+pdftitle={Investment calculation},pdfsubject={Investment}%
+]{hyperref}
+\definecolor{background}{rgb}{0.99,0.98,0.85}
+\pagecolor{background}
+\setlength{\parindent}{0.0cm}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaaca]{exaaca}{JavaScript}
+var done = 0;
+
+function docOpen()
+{
+ if(!done) {
+ done = 1;
+ var newcolor = [ "RGB", 0.99, 0.98, 0.85];
+ var borcolor = [ "RGB", 0.65, 0.79, 0.94]
+ this.getField("l01").fillColor = newcolor;
+ this.getField("l01").strokeColor = newcolor;
+ this.getField("l02").fillColor = newcolor;
+ this.getField("l02").strokeColor = newcolor;
+ this.getField("l03").fillColor = newcolor;
+ this.getField("l03").strokeColor = newcolor;
+ this.getField("l04").fillColor = newcolor;
+ this.getField("l04").strokeColor = newcolor;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("summe").fillColor = newcolor;
+ this.getField("zins").fillColor = newcolor;
+ this.getField("ergebnis").fillColor = newcolor;
+ }
+}
+
+function doCalculation()
+{
+ var summe = 0.0 + this.getField("summe").value;
+ var zins = 0.0 + this.getField("zins").value;
+ var zeit = 0 + this.getField("zeit").value;
+ var i, faktor, wert;
+ faktor = 1.0 + 0.01 * zins;
+ for(i = 0; i < zeit; i++) {
+ summe = summe * faktor;
+ }
+ wert = Math.round(100.0 * summe);
+ wert = 0.01 * wert;
+ wert = wert.toFixed(2);
+ wert = wert.toString();
+ this.getField("ergebnis").value = wert;
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (docOpen();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={0.99 0.98 0.85},%
+fillcolor={0.99 0.98 0.85},readonly=true]{}%
+}
+\begin{document}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]\multicolumn{2}{|c|}{%
+\textsc{I\,n\,p\,u\,t~D\,a\,t\,a}%
+}\\
+&\\*[-0.8em]\textforlabel{l01}{Investment capital:}&\TextField[%
+name=summe,width=10em,bordercolor={0.65 0.79 0.94}]{}%
+~\texteuro\\
+&\\*[-0.8em]\textforlabel{l02}{Zins:}&\TextField[%
+name=zins,width=10em,bordercolor={0.65 0.79 0.94}]{}~\%\\
+&\\*[-0.8em]\textforlabel{l03}{Investment time:}&%
+\ChoiceMenu[name=zeit,popdown=true,bordercolor={0.65 0.79 0.94}%
+]{}{{1}={1},{2}={2},{3}={3},{4}={4},{5}={5},%
+{6}={6},{7}={7},{8}={8},{9}={9},{10}={10}}~years\\
+&\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{C\,a\,l\,c\,u\,l\,a\,t\,i\,o\,n}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\PushButton[name=start,%
+onclick={doCalculation()},bordercolor={0.65 0.79 0.94},%
+fillcolor={0.5 0.5 0.5}]{Start}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{R\,e\,s\,u\,l\,t}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\textforlabel{l04}{%
+Result:}&\TextField[name=ergebnis,width=10em,%
+bordercolor={0 0 0},readonly=true]{}~\texteuro\\
+\multicolumn{2}{|c|}{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0202.tex b/info/pdf-forms-tutorial/en/examples/ex0202.tex
new file mode 100644
index 0000000000..4527543078
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0202.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\setcounter{secnumdepth}{0}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\setlength{\paperwidth}{5.2075in}
+\setlength{\paperheight}{3.75in}
+\renewcommand*{\familydefault}{phv}
+\usepackage[pdftex,margin=0.5in]{geometry}
+\usepackage{fancyhdr}
+\lhead{Big Money, Inc.}\chead{}
+\rhead{Department f\"{u}r Versprechungen}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[pdftex,pdfpagelayout=SinglePage,%
+pdftitle={Anlageberechnung},pdfsubject={Formular}%
+]{hyperref}
+\definecolor{background}{rgb}{0.99,0.98,0.85}
+\pagecolor{background}
+\setlength{\parindent}{0.0cm}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaacb]{exaacb}{JavaScript functions}
+var done = 0;
+
+function docOpen()
+{
+ if(!done) {
+ done = 1;
+ var newcolor = [ "RGB", 0.99, 0.98, 0.85];
+ var borcolor = [ "RGB", 0.65, 0.79, 0.94]
+ this.getField("l01").fillColor = newcolor;
+ this.getField("l01").strokeColor = newcolor;
+ this.getField("l02").fillColor = newcolor;
+ this.getField("l02").strokeColor = newcolor;
+ this.getField("l03").fillColor = newcolor;
+ this.getField("l03").strokeColor = newcolor;
+ this.getField("l04").fillColor = newcolor;
+ this.getField("l04").strokeColor = newcolor;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("summe").fillColor = newcolor;
+ this.getField("zins").fillColor = newcolor;
+ this.getField("ergebnis").fillColor = newcolor;
+ }
+}
+
+function restrictDecimalDigits(s,n)
+{
+ var back = s;
+ return back;
+}
+
+function doCalculation()
+{
+ var summe = 0.0 + this.getField("summe").value;
+ var zins = 0.0 + this.getField("zins").value;
+ var zeit = 0 + this.getField("zeit").value;
+ var i, faktor, wert;
+ faktor = 1.0 + 0.01 * zins;
+ for(i = 0; i < zeit; i++) {
+ summe = summe * faktor;
+ }
+ wert = Math.round(100.0 * summe);
+ wert = wert.toFixed(0);
+ wert = 0.01 * wert;
+ wert = wert.toString();
+ wert = restrictDecimalDigits(wert, 2);
+ this.getField("ergebnis").value = wert;
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (docOpen();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={0.99 0.98 0.85},%
+fillcolor={0.99 0.98 0.85},readonly=true]{}%
+}
+\begin{document}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]\multicolumn{2}{|c|}{%
+\textsc{E\,i\,n\,g\,a\,b\,e\,d\,a\,t\,e\,n}%
+}\\
+&\\*[-0.8em]\textforlabel{l01}{Investment capital:}&\TextField[%
+name=summe,width=10em,bordercolor={0.65 0.79 0.94}]{}%
+~\texteuro\\
+&\\*[-0.8em]\textforlabel{l02}{Zins:}&\TextField[%
+name=zins,width=10em,bordercolor={0.65 0.79 0.94}]{}~\%\\
+&\\*[-0.8em]\textforlabel{l03}{Investment time:}&%
+\ChoiceMenu[name=zeit,popdown=true,bordercolor={0.65 0.79 0.94}%
+]{}{{1}={1},{2}={2},{3}={3},{4}={4},{5}={5},%
+{6}={6},{7}={7},{8}={8},{9}={9},{10}={10}}~Jahre\\
+&\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{B\,e\,r\,e\,c\,h\,n\,u\,n\,g}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\PushButton[name=start,%
+onclick={doCalculation()},bordercolor={0.65 0.79 0.94},%
+fillcolor={0.5 0.5 0.5}]{Start}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{A\,u\,s\,g\,a\,b\,e}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\textforlabel{l04}{%
+Result:}&\TextField[name=ergebnis,width=10em,%
+bordercolor={0 0 0}]{}~\texteuro\\
+\multicolumn{2}{|c|}{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/ex0301.tex b/info/pdf-forms-tutorial/en/examples/ex0301.tex
new file mode 100644
index 0000000000..d0b26763c6
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/ex0301.tex
@@ -0,0 +1,59 @@
+\documentclass[ngerman,a4paper]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\renewcommand*{\familydefault}{phv}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\usepackage{fancyhdr}
+\lhead{Test}\chead{}\rhead{inputenc and insdljs}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={insdljs und inputenc},pdfsubject={Test},
+ pdfauthor={ich},
+ pdfpagemode=UseNone,pdfstartview=FitH,
+ pagebackref,pdfhighlight={/N}
+]{hyperref}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaada]{exaada}{JavaScript auf Document Level}
+// indicate that the function was not yet run
+var done = 0;
+
+// text to show when file is opened
+var theText =
+"Test to show \u00E4\u00F6\u00FC\u00C4\u00D6\u00DC\u00DF";
+
+// function to run when opening the document
+function myFirstJavaScriptFunction()
+{
+ if(!done) {
+ done = 1;
+ app.alert(theText);
+ }
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=7em,align=2,%
+bordercolor={1 1 1},readonly=true]{}%
+}
+\begin{document}
+\section{Testing insdljs and inputenc}
+This is a test whether insdljs and inputenc can be used combined.
+The pop-up box should show the following german umlauts and ligatures:
+\begin{itemize}
+\item ä (ae)
+\item ö (oe)
+\item ü (ue)
+\item Ä (Ae)
+\item Ö (Oe)
+\item Ü (Ue)
+\item ß (sz)
+\end{itemize}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/examples/xxx b/info/pdf-forms-tutorial/en/examples/xxx
new file mode 100644
index 0000000000..b61d73e871
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/examples/xxx
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\setcounter{secnumdepth}{0}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\setlength{\paperwidth}{5.2075in}
+\setlength{\paperheight}{3.75in}
+\renewcommand*{\familydefault}{phv}
+\usepackage[pdftex,margin=0.5in]{geometry}
+\usepackage{fancyhdr}
+\lhead{Big Money, Inc.}\chead{}
+\rhead{Department f\"{u}r Versprechungen}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage[pdftex,pdfpagelayout=SinglePage,%
+pdftitle={Anlageberechnung},pdfsubject={Formular}%
+]{hyperref}
+\definecolor{background}{rgb}{0.99,0.98,0.85}
+\pagecolor{background}
+\setlength{\parindent}{0.0cm}
+\usepackage[pdftex]{insdljs}
+\begin{insDLJS}[exaacb]{exaacb}{JavaScript functions}
+var done = 0;
+
+function docOpen()
+{
+ if(!done) {
+ done = 1;
+ var newcolor = [ "RGB", 0.99, 0.98, 0.85];
+ var borcolor = [ "RGB", 0.65, 0.79, 0.94]
+ this.getField("l01").fillColor = newcolor;
+ this.getField("l01").strokeColor = newcolor;
+ this.getField("l02").fillColor = newcolor;
+ this.getField("l02").strokeColor = newcolor;
+ this.getField("l03").fillColor = newcolor;
+ this.getField("l03").strokeColor = newcolor;
+ this.getField("l04").fillColor = newcolor;
+ this.getField("l04").strokeColor = newcolor;
+ this.getField("zeit").currentValueIndices = 0;
+ this.getField("zeit").fillColor = newcolor;
+ this.getField("summe").fillColor = newcolor;
+ this.getField("zins").fillColor = newcolor;
+ this.getField("ergebnis").fillColor = newcolor;
+ }
+}
+
+function restrictDecimalDigits(s,n)
+{
+ var back = s;
+ return back;
+}
+
+function doCalculation()
+{
+ var summe = 0.0 + this.getField("summe").value;
+ var zins = 0.0 + this.getField("zins").value;
+ var zeit = 0 + this.getField("zeit").value;
+ var i, faktor, wert;
+ faktor = 1.0 + 0.01 * zins;
+ for(i = 0; i < zeit; i++) {
+ summe = summe * faktor;
+ }
+ wert = Math.round(100.0 * summe);
+ wert = wert.toFixed(0);
+ wert = 0.01 * wert;
+ wert = wert.toString();
+ wert = restrictDecimalDigits(wert, 2);
+ this.getField("ergebnis").value = wert;
+}
+\end{insDLJS}
+\OpenAction{/S /JavaScript /JS (docOpen();)}
+\newcommand{\textforlabel}[2]{%
+\TextField[name={#1},value={#2},width=9em,align=2,%
+bordercolor={0.99 0.98 0.85},%
+fillcolor={0.99 0.98 0.85},readonly=true]{}%
+}
+\begin{document}
+\begin{Form}
+\begin{tabular}{|rl|}
+\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]\multicolumn{2}{|c|}{%
+\textsc{E\,i\,n\,g\,a\,b\,e\,d\,a\,t\,e\,n}%
+}\\
+&\\*[-0.8em]\textforlabel{l01}{Investment capital:}&\TextField[%
+name=summe,width=10em,bordercolor={0.65 0.79 0.94}]{}%
+~\texteuro\\
+&\\*[-0.8em]\textforlabel{l02}{Zins:}&\TextField[%
+name=zins,width=10em,bordercolor={0.65 0.79 0.94}]{}~\%\\
+&\\*[-0.8em]\textforlabel{l03}{Investment time:}&%
+\ChoiceMenu[name=zeit,popdown=true,bordercolor={0.65 0.79 0.94}%
+]{}{{1}={1},{2}={2},{3}={3},{4}={4},{5}={5},%
+{6}={6},{7}={7},{8}={8},{9}={9},{10}={10}}~Jahre\\
+&\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{B\,e\,r\,e\,c\,h\,n\,u\,n\,g}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\PushButton[name=start,%
+onclick={doCalculation()},bordercolor={0.65 0.79 0.94},%
+fillcolor={0.5 0.5 0.5}]{Start}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\hline
+\multicolumn{2}{|c|}{}\\*[-0.8em]
+\multicolumn{2}{|c|}{\textsc{A\,u\,s\,g\,a\,b\,e}}\\
+\multicolumn{2}{|c|}{}\\*[-0.8em]\textforlabel{l04}{%
+Result:}&\TextField[name=ergebnis,width=10em,%
+bordercolor={0 0 0}]{}~\texteuro\\
+\multicolumn{2}{|c|}{}\\
+\hline
+\end{tabular}
+\end{Form}
+\end{document}
diff --git a/info/pdf-forms-tutorial/en/forms-src/Makefile b/info/pdf-forms-tutorial/en/forms-src/Makefile
new file mode 100644
index 0000000000..faacb19369
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/Makefile
@@ -0,0 +1,31 @@
+all: forms.pdf
+
+SOURCES= forms.tex\
+ bib.bib\
+ fde0001.tex\
+ fde0002.tex\
+ fde0003.tex\
+ fde0004.tex\
+ fde0005.tex\
+ fde0006.tex\
+ fde0007.tex\
+ fde0008.tex\
+ fde0009.tex\
+ fde0010.tex\
+ fde0011.tex\
+ fde0012.tex\
+ fde0013.tex\
+ fde0014.tex\
+ fde0015.tex\
+ fde0016.tex\
+ fde0017.tex\
+ fde0018.tex
+
+forms.pdf: $(SOURCES)
+ pdflatex forms
+ bibtex forms
+ pdflatex forms
+ pdflatex forms
+
+clean:
+ -rm -fr *.bbl *.blg *.out *.djs ex00*.pdf
diff --git a/info/pdf-forms-tutorial/en/forms-src/bib.bib b/info/pdf-forms-tutorial/en/forms-src/bib.bib
new file mode 100644
index 0000000000..c944d944f5
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/bib.bib
@@ -0,0 +1,29 @@
+@Book{pdf:javascript,
+author = "Adobe Technical Support",
+title = "{A}crobat {J}ava{S}cript {O}bject {Specification} Version 5.1",
+publisher = "Adobe Systems Incorporated",
+year = "2003"
+}
+@Book{pdf:reference,
+author = "{A}dobe {S}ystems {I}ncorporated",
+title = "PDF {R}eference, third edition",
+publisher = "Adobe Systems Incorporated",
+year = "2001"
+}
+@Book{hyperref:manual,
+author = "Sebastian Rahtz and Heiko Oberdiek",
+title = "{H}ypertext marks in LaTeX: a manual for hyperref",
+year = "2004"
+}
+@Book{pdf:scripting:guide,
+author = "{A}dobe {D}eveloper {S}upport",
+title = "Acrobat JavaScript Scripting Guide",
+publisher = "Adobe Systems Incorporated",
+year = "2005"
+}
+@Book{pdf:scripting:reference,
+author = "{A}dobe {D}eveloper {S}upport",
+title = "Acrobat JavaScript Scripting Reference",
+publisher = "Adobe Systems Incorporated",
+year = "2005"
+}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0001.tex b/info/pdf-forms-tutorial/en/forms-src/fde0001.tex
new file mode 100644
index 0000000000..39390ac6aa
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0001.tex
@@ -0,0 +1,33 @@
+\subsection{Copyright}
+Copyright (c) 2007 Dirk Krause\\*[0.5em]
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the \textsc{gnu} Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.\\
+A copy of the license is included in the appendix in a section
+named ``\textsc{gnu} Free Documentation License''.
+\subsection{Purpose of this tutorial}
+This tutorial shows how to create \textsc{pdf} forms using
+pdf\LaTeX{}, hyperref and insdljs. The focus is set on forms
+which are filled interactively on screen and printed.
+
+You need a \LaTeX{} distribution, pdflatex, hyperref and
+insdljs must be installed. The insdljs package is a part of
+the AcroTeX Education Bundle, see
+\url{http://www.acrotex.net}.
+
+You should have the following additional documentation
+available:
+\begin{itemize}
+\item the hyperref manual: \cite{hyperref:manual},
+\item guides, specifications and references for
+ Acrobat JavaScript:
+ \cite{pdf:javascript}, \cite{pdf:scripting:guide}
+ and \cite{pdf:scripting:reference} and
+\item the \textsc{pdf} file format reference: \cite{pdf:reference}.
+
+This tutorial shows three examples, the first one is developed
+step-by-step. The final versions of the forms are
+``ex0011'', ``ex0101'' and ``ex0201''.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0002.tex b/info/pdf-forms-tutorial/en/forms-src/fde0002.tex
new file mode 100644
index 0000000000..2873057b5a
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0002.tex
@@ -0,0 +1,25 @@
+The hyperref package provides environments and macros to
+create forms. The form elements must be placed in a
+\texttt{Form} environment, \texttt{Form} environments are
+limited to one \texttt{Form} environment per document.
+The following macros can be used to create form elements:
+\begin{itemize}
+\item \texttt{\textbackslash{}TextField[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+creates a text field.
+\item \texttt{\textbackslash{}CheckBox[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+creates a check box.
+\item \texttt{\textbackslash{}ChoiceMenu[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}\{}\textit{Auswahl-Optionen}\texttt{\}}\\
+creates a choice list.
+\item \texttt{\textbackslash{}PushButton[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+creates a button.
+\item \texttt{\textbackslash{}Submit[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+creates a Submit-Button. Pushing the button sends form data to
+the \textsc{url} specified as action-parameter in the
+\texttt{Form} environment.
+\item \texttt{\textbackslash{}Reset[}\textit{Parameter}\texttt{]}\texttt{\{}\textit{Text}\texttt{\}}\\
+creates a Reset-button.
+\end{itemize}
+The hyperref documentation \cite{hyperref:manual} provides a more
+detailed description of the \texttt{Form} environment and the
+macros above.
+
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0003.tex b/info/pdf-forms-tutorial/en/forms-src/fde0003.tex
new file mode 100644
index 0000000000..2688ab1914
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0003.tex
@@ -0,0 +1,58 @@
+\subsubsection{Document class}
+The usual document classes -- i.\,e. scrartcl or article --
+can be used to create forms.
+\subsubsection{Fonts}
+The \textsc{pdf} standard requires each \textsc{pdf} viewer
+to render 14 fonts even if the font is not embedded into the
+\textsc{pdf} file, especially the font families
+Times, Helvetica and Courier. JavaScript code can be used
+to change form field fonts to these fonts.
+We want to use
+JavaScript to change fonts, so we load the font setup
+packages using
+\begin{lstlisting}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\end{lstlisting}
+Additionally we use
+\begin{lstlisting}
+\usepackage[T1]{fontenc}
+\end{lstlisting}
+to change the font encoding from OT1 (\LaTeX{} default) to T1.\\
+The default family is switched to Helvetica using
+\begin{lstlisting}
+\renewcommand*{\familydefault}{\phv}
+\end{lstlisting}
+because sans-serif fonts are better readable on screen
+than serifed fonts.
+\subsubsection{Page layout}
+The page margins are set up by:
+\begin{lstlisting}
+\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
+\end{lstlisting}
+Page header and footer are set up by:
+\begin{lstlisting}
+\usepackage{fancyhdr}
+\lhead{Firma ABC}\chead{}\rhead{Abteilung XYZ}
+\lfoot{}\cfoot{}\rfoot{}
+\pagestyle{fancy}
+\end{lstlisting}
+\subsubsection{Graphics and colors}
+The packages
+\begin{lstlisting}
+\usepackage{graphicx}
+\usepackage{color}
+\end{lstlisting}
+can be used to add graphics (i.\,e. logos) and colors.
+\subsubsection{hyperref-package}
+The hyperref package is used:
+\begin{lstlisting}
+\usepackage[
+ pdftex,a4paper=true,colorlinks=true,
+ pdftitle={Key form},
+ pdfsubject={Key},
+ pdfauthor={Front of House Manager},
+ pdfpagemode=UseNone,pdfstartview=FitH,pdfhighlight={/N}
+]{hyperref}
+\end{lstlisting}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0004.tex b/info/pdf-forms-tutorial/en/forms-src/fde0004.tex
new file mode 100644
index 0000000000..27ba6bcba0
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0004.tex
@@ -0,0 +1,38 @@
+I recommend to set form elements colors and fonts as shown
+in table~\vref{tab:gestaltung-von-formularelementen}.
+\begin{longtable}{|l|c|c|c|}
+\caption{Form element colors and fonts}
+\label{tab:gestaltung-von-formularelementen}
+\\
+\multicolumn{4}{c}{~}\\*[-0.9em]
+\hline
+&&&\\*[-0.9em]\multicolumn{1}{|c|}{}&\multicolumn{1}{c|}{\textbf{Border color}}&\multicolumn{1}{c|}{\textbf{Fill color}}&\multicolumn{1}{c|}{\textbf{Font weight}}\\
+\hline
+\endfirsthead
+\multicolumn{4}{|r|}{\textsl{Continuation}}
+\endhead
+\multicolumn{4}{|r|}{\textsl{to be continued}}
+\endfoot
+\hline
+\endlastfoot
+\hline
+&&&\\*[-0.9em]Screen&colored&colored&bold\\
+\hline
+&&&\\*[-0.9em]Printout&black&white&regular\\
+\hline
+&&&\\*[-0.9em]Screen and Printout\footnote{if JavaScript is deactivated}&colored&white&regular\\
+\end{longtable}
+All form elements should be marked fully colored when shown on screen
+so users can find all elements easily. For readability we choose
+a bold font to show text on a colored background.
+
+Printouts of forms are typically done on black-and-white printers.
+On printout we want a black border and white filling for form elements.
+The text is black on white now, so we do not need a bold font.
+
+JavaScript must be enabled in the \textsc{pdf} viewer to change colors
+and fonts before and after printing the document.
+
+The color for marking form elements should be the same color for all
+elements. We want to show black text on color-filled areas, so we should
+use a light color for a good contrast.
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0005.tex b/info/pdf-forms-tutorial/en/forms-src/fde0005.tex
new file mode 100644
index 0000000000..65bc10cb2d
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0005.tex
@@ -0,0 +1,10 @@
+We want to design a form which can be used to request keys for new
+empolyees. The following data is needed:
+\begin{itemize}
+\item First name and name,
+\item Department,
+\item Employment time (unlimited or limited from \ldots{} until \ldots{}),
+\item the doors to open.
+\end{itemize}
+Text fields are used for first name and name. Department and employment
+time are choosen from a list. The doors are selected in check boxes.
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0006.tex b/info/pdf-forms-tutorial/en/forms-src/fde0006.tex
new file mode 100644
index 0000000000..656017175d
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0006.tex
@@ -0,0 +1,18 @@
+The ex0001.tex file shows a first attempt to create the form.
+\lstinputlisting{../examples/ex0001.tex}
+After running
+\begin{lstlisting}
+pdflatex ex0001 && pdflatex ex0001
+\end{lstlisting}
+we can open ex0001.pdf in the \textsc{pdf} viewer.\\
+The form does not look good but contains the required functionality.
+
+The source shows:
+\begin{itemize}
+\item A unique name (identifier) is assigned to each form element
+ using the \textit{name\/} parameter.
+\item The last argument of the \textit{\textbackslash{}ChoiceMenu[]\{\}\{\}}
+ macro is a list containing the available choices. Each list
+ entry contains the full text to show and an abbreviation, separated
+ by ``=''.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0007.tex b/info/pdf-forms-tutorial/en/forms-src/fde0007.tex
new file mode 100644
index 0000000000..616eb37d08
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0007.tex
@@ -0,0 +1,3 @@
+We use a \textit{tabular} environment to align the form elements
+in a table.
+\lstinputlisting{../examples/ex0002.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0008.tex b/info/pdf-forms-tutorial/en/forms-src/fde0008.tex
new file mode 100644
index 0000000000..40e12074b5
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0008.tex
@@ -0,0 +1,14 @@
+We use
+\begin{lstlisting}
+&&\\*[-0.9em]
+\end{lstlisting}
+to add vertical space between the table lines. In the last table
+line we use
+\begin{lstlisting}
+&&\\*
+\end{lstlisting}
+
+In the \textit{ChoiceMenu\/} we set the ``popdown=true'' parameter
+to establish popdown-behaviour.\\
+The parameter ``width=20em'' parameter sets the horizontal size.
+\lstinputlisting{../examples/ex0003.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0009.tex b/info/pdf-forms-tutorial/en/forms-src/fde0009.tex
new file mode 100644
index 0000000000..0bba41b504
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0009.tex
@@ -0,0 +1,16 @@
+The \(y\)-position of form element texts and label texts differ
+because the form elements have an inner and outer border.
+
+We use text fields to show the labels and make the borders
+invisible. So label text and form element text is at the same
+\(y\)-position now.
+
+We create a white border for the labels
+\begin{lstlisting}
+bordercolor={1 1 1}
+\end{lstlisting}
+and set text alignment to right-aligned:
+\begin{lstlisting}
+align=2
+\end{lstlisting}
+\lstinputlisting{../examples/ex0004.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0010.tex b/info/pdf-forms-tutorial/en/forms-src/fde0010.tex
new file mode 100644
index 0000000000..dad95179bf
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0010.tex
@@ -0,0 +1,7 @@
+We use
+\begin{lstlisting}
+bordercolor={0.65 0.79 0.94}
+\end{lstlisting}
+to change the border color to light blue for the form
+elements.
+\lstinputlisting{../examples/ex0005.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0011.tex b/info/pdf-forms-tutorial/en/forms-src/fde0011.tex
new file mode 100644
index 0000000000..7c1c2749c1
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0011.tex
@@ -0,0 +1,47 @@
+The insdljs package is used to add document level JavaScript.
+The package requires to specify the output driver.
+\begin{lstlisting}
+\usepackage[pdftex]{insdljs}
+\end{lstlisting}
+The JavaScript-code to add is placed in an
+\textit{insDLJS\/} environment. The optional argument
+and the first required argument must be \LaTeX{} identifiers
+(use a string containing characters only, no numbers).
+The second required argument is a comment
+\begin{lstlisting}
+\begin{insDLJS}[exaaaa]{exaaaa}{Document Level JavaScript}
+// ... Place Java source code here ...
+\end{insDLJS}
+\end{lstlisting}
+The identifier is used to build a file name (``exaaaa.djs'') to
+temporarily store the packed JavaScript code.
+
+The \textit{OpenAction\{\}\/} macro specifies a function which is executed
+when the document is opened.
+\begin{lstlisting}
+\OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)}
+\end{lstlisting}
+The JavaScript-code is enclosed in brackets. The example code
+contains a function invokation.
+
+The function may be invoked multiple times (each time one navigates
+to page 1). We use a variable as a flag indicating whether the
+function is run for the first time or not.
+\lstinputlisting{../examples/ex0006.tex}
+A message box is shown when the document is opened. In the
+german version the character \"{o} is malformed to
+``\"{}o'' because the inputenc package replaces german
+umlauts (and other characters) by the corresponding
+\LaTeX{} code sequence. There are two ways to solve the problem:
+\begin{itemize}
+\item Remove the inputenc package and convert german umlauts to their
+\LaTeX{} code sequence manually (shown in the listing below at the end of this
+section) or
+\item use JavaScript-Unicode notation for umlauts in JavaScript instead
+of typing the umlauts directly (shown in section~\vref{sec:fde0020}).
+\end{itemize}
+\begin{lstlisting}
+\usepackage[latin1]{inputenc}
+\end{lstlisting}
+from our source.
+\lstinputlisting{../examples/ex0007.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0012.tex b/info/pdf-forms-tutorial/en/forms-src/fde0012.tex
new file mode 100644
index 0000000000..8cd70d6ebd
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0012.tex
@@ -0,0 +1,59 @@
+To process document events we have to add an /AA entry to the
+\textsc{pdf} catalogue. The entry value must be a dictionary
+defining event handlers. Entries in this dictionary
+are key/value pairs, the value is again a dictionary
+specifying the action to take.\\
+The following keys can occur:\\[0.5em]
+\begin{tabular}{|r|l|}
+\hline
+&\\*[-0.9em]\multicolumn{1}{|c|}{\textbf{Key}}&\multicolumn{1}{c|}{\textbf{Event}}\\
+\hline
+&\\*[-0.9em]/WP&The document will be printed.\\
+\hline
+&\\*[-0.9em]/DP&The document was printed.\\
+\hline
+&\\*[-0.9em]/WS&The document will be saved.\\
+\hline
+&\\*[-0.9em]/DS&The document was saved.\\
+\hline
+&\\*[-0.9em]/DC&The document will be closed.\\
+\hline
+\end{tabular}\\[0.5em]
+In the example we run \textit{willPrint();\/} for the WillPrint event
+and \textit{didPrint();\/} for the DidPrint event.
+\begin{lstlisting}
+\immediate\pdfobj{
+<<
+ /WP << /S /JavaScript /JS (willPrint();) >>
+ /DP << /S /JavaScript /JS (didPrint();) >>
+>>
+}
+\pdfcatalog{/AA \the\pdflastobj\space 0 R}
+\end{lstlisting}
+Before and after printing ex0008.pdf a message box is shown.
+\lstinputlisting{../examples/ex0008.tex}
+In ex0009.pdf we change stroke and fill colors and text fonts before
+and after printing.
+We have to change the
+\textit{fillColor\/}, \textit{strokeColor\/}
+and \textit{textFont\/} attributes.\\
+The changes are enclosed in
+\begin{lstlisting}
+ this.delay = true
+ // ...
+ this.delay = false
+\end{lstlisting}
+to avoid multiple screen refreshes after each change.
+
+In \textit{myFirstJavaScriptFunction()\/} we set defaults for the
+choice lists
+\textit{abt\/} and \textit{zeit\/} using:
+\begin{lstlisting}
+this.getField("abt").currentValueIndices = 0;
+this.getField("zeit").currentValueIndices = 0;
+\end{lstlisting}
+We set the focus to the \textit{vorname\/} field by:
+\begin{lstlisting}
+this.getField("vorname").setFocus();
+\end{lstlisting}
+\lstinputlisting{../examples/ex0009.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0013.tex b/info/pdf-forms-tutorial/en/forms-src/fde0013.tex
new file mode 100644
index 0000000000..1476634e4f
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0013.tex
@@ -0,0 +1,19 @@
+Events can be triggered by form elements, in the example
+we assign the function \textit{validateTime()\/} as an event
+handler for the Validate event of the
+\textit{zeit} choice list.
+\begin{lstlisting}
+validate={validateTime();}
+\end{lstlisting}
+If the user leaves the choice field the function is invoked
+and turns the ``from'' and ``until'' text fields visible
+\begin{lstlisting}
+this.getField("von").display = display.visible;
+this.getField("bis").display = display.visible;
+\end{lstlisting}
+or invisible.
+\begin{lstlisting}
+this.getField("von").display = display.hidden;
+this.getField("bis").display = display.hidden;
+\end{lstlisting}
+\lstinputlisting{../examples/ex0010.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0014.tex b/info/pdf-forms-tutorial/en/forms-src/fde0014.tex
new file mode 100644
index 0000000000..6e63ccf630
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0014.tex
@@ -0,0 +1,13 @@
+In the choice list \textit{abt\/} we want to either choose an entry
+from the list or add text.\\
+The parameter
+\begin{lstlisting}
+combo=true
+\end{lstlisting}
+activates combo box hehaviour.\\
+Additionally we add a JavaScript code line
+\begin{lstlisting}
+this.getField("abt").editable = true;
+\end{lstlisting}
+into our initialization function \textit{myFirstJavaScriptFunction()\/}.
+\lstinputlisting{../examples/ex0011.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0015.tex b/info/pdf-forms-tutorial/en/forms-src/fde0015.tex
new file mode 100644
index 0000000000..2a5fd478fc
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0015.tex
@@ -0,0 +1,8 @@
+We want to create a form to require software licenses and installation.
+
+Information about the PC and the owner are entered in text fields.
+The software is choosen from choice lists. We have several lists
+providing the same choices. The choice lists are combo boxes
+so users can manually type in names of special software applications
+if necessary.
+
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0016.tex b/info/pdf-forms-tutorial/en/forms-src/fde0016.tex
new file mode 100644
index 0000000000..03b5513585
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0016.tex
@@ -0,0 +1,27 @@
+The choice lists can be initialized using JavaScript instead
+of writing the choices in the \textit{\textbackslash{}ChoiceMenu[]\{\}\{\}}
+macro.\\
+This provides a better overview.
+
+Choices are specified in an array. Each array element is an array again,
+consisting of two entries: the full text shown on screen and an
+abbreviation:
+\begin{lstlisting}
+var softwareAuswahl = [
+ [ "", ""],
+ [ "Betriebssystem", "os" ],
+ [ "Textverarbeitung", "tp" ],
+ [ "Tabellenkalkulation", "sc" ],
+ [ "Präsentationsprogramm", "pp" ],
+ [ "E-Mail-Client", "mc" ],
+ [ "Web browser", "wb" ],
+ [ "Mathematik-Software", "ms" ],
+ [ "PDF-Anzeigeprogramm", "pv" ]
+];
+\end{lstlisting}
+The \textit{setItems()\/} method sets the choices for
+a choice list:
+\begin{lstlisting}
+this.getField("sw01").setItems(softwareAuswahl);
+\end{lstlisting}
+\lstinputlisting{../examples/ex0101.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0017.tex b/info/pdf-forms-tutorial/en/forms-src/fde0017.tex
new file mode 100644
index 0000000000..5c51941382
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0017.tex
@@ -0,0 +1,5 @@
+The third form is an interactive application, a click on a button
+starts an investment calculation. The user can provide an
+investment amount in \texteuro{}, an investment time in years and
+the annual rate in percent. A click on the start button
+calculates the investment result.
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0018.tex b/info/pdf-forms-tutorial/en/forms-src/fde0018.tex
new file mode 100644
index 0000000000..4ed4ae6580
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0018.tex
@@ -0,0 +1,17 @@
+This form is not intended to be printed, so we can use a non-white
+background. The paper size is set to
+\(5.2057\,\textrm{inches}\,\times\,3.75\,\textrm{inches}\)
+
+The arcument
+\begin{lstlisting}
+onclick={doCalculation()}
+\end{lstlisting}
+to the ``Start'' button specifies the function to invoke when
+the button is pressed.\\
+\emph{Note:\/} The function is specified without semicolon here.
+
+The \textit{doCalculation()\/} function retrieves the input
+values and runs the calculation.
+The result is rounded to cents and printed in a text field.
+
+\lstinputlisting{../examples/ex0201.tex}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0019.tex b/info/pdf-forms-tutorial/en/forms-src/fde0019.tex
new file mode 100644
index 0000000000..814c27b2fd
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0019.tex
@@ -0,0 +1,38 @@
+\begin{itemize}
+\item Version 0.9.5 (2008-02-08)\\*
+shows how to add help using \textsc{pdf} annotations or
+tooltip texts.
+\item Version 0.9.4 (2007-06-20)\\*
+contains a new section how to use the insdljs and inputenc
+packages together. German umlauts must not be written directly to strings
+in JavaScript code, the corresponding JavaScript Unicode notations must
+be used instead.
+\item Version 0.9.3 (2007-06-15)\\*
+contains corrected options for the hyperref package.
+\begin{lstlisting}
+pdfpagemode=UseNone
+\end{lstlisting}
+was replaced by
+\begin{lstlisting}
+pdfpagemode=UseNone
+\end{lstlisting}
+\item Version 0.9.2 (2007-06-14)\\
+uses other fonts than previous versions. The document preamble was derived
+from another document containing mathematics. As this document does not
+contain mathematics we do no need the packages related to mathematics.
+\item Version 0.9.1 (2007-06-13)\\
+contains corrections in the ``Fonts'' section.\\
+\begin{lstlisting}
+\usepackage[T1]{fontenc}
+\end{lstlisting}
+does not set up \LaTeX{} to use type-1 fonts (as stated in version 0.9.0).\\
+Instead it changes the preferred font encoding vector to T1 instead of OT1
+if type-1 fonts are used.
+\item Version 0.9.0\\
+is the first version published on \textsc{ctan}.\\
+I'm not a native english speaker, so the english tutorial and examples
+may need corrections in style, spelling and grammar.\\
+Please feel free to contact me using the web form
+\url{http://www.fh-schmalkalden.de/url.php?/page/1026/select_wert/3023}
+if you have suggestions.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0020.tex b/info/pdf-forms-tutorial/en/forms-src/fde0020.tex
new file mode 100644
index 0000000000..981bc76751
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0020.tex
@@ -0,0 +1,45 @@
+\label{sec:fde0020}
+The inputenc package replaces some characters -- i.\,e. german umlauts --
+by \LaTeX{} code sequences. This is a good idea for ``normal'' text but not
+for JavaScript code.
+
+To avoid the conversion in JavaScript code the characters must not be added
+directly to strings, add the corresponding JavaScript-Unicode notation
+instead.
+
+Table~\vref{tab:umlauts} contains some example Unicode notations for german
+umlauts and ligatures.
+\begin{longtable}{|r|l|}\caption{JavaScript-Unicode notation for german umlauts}\label{tab:umlauts}\\
+\hline
+&\\*[-0.9em]\multicolumn{1}{|c|}{\textbf{umlaut/ligature}}&\multicolumn{1}{c|}{\textbf{JavaScript-Unicode notation}}\\
+\hline
+\endfirsthead
+\hline
+&\\*[-0.9em]\multicolumn{2}{|r|}{\textsl{Continuation}}\\
+\hline
+\endhead
+&\\*[-0.9em]\multicolumn{2}{|r|}{\textsl{to be continued}}\\
+\hline
+\endfoot
+\hline
+\endlastfoot
+\hline
+&\\*[-0.9em]ä&\textbackslash{}u00E4\\
+\hline
+&\\*[-0.9em]ö&\textbackslash{}u00F6\\
+\hline
+&\\*[-0.9em]ü&\textbackslash{}u00FC\\
+\hline
+&\\*[-0.9em]A&\textbackslash{}u00C4\\
+\hline
+&\\*[-0.9em]Ö&\textbackslash{}u00D6\\
+\hline
+&\\*[-0.9em]Ü&\textbackslash{}u00DC\\
+\hline
+&\\*[-0.9em]ß&\textbackslash{}u00DF\\
+\end{longtable}
+\clearpage
+Here is an example how to use the Unicode notation
+(see variable \textit{theText\/}):
+\lstinputlisting{../examples/ex0301.tex}
+\clearpage
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0021.tex b/info/pdf-forms-tutorial/en/forms-src/fde0021.tex
new file mode 100644
index 0000000000..980122fd32
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0021.tex
@@ -0,0 +1,15 @@
+Online help can be provided on different ways:
+\begin{itemize}
+\item \textsc{pdf} annotations\\
+Annotations are represented using icons. If the user moves the mouse
+over an annotation icon, the annotation text is shown in a tooltip. If the
+user double-clicks the annotation, the note is shown on the screen.\\
+Advantage: Annotations do not need JavaScript.\\
+Disadvantage: Place is needed for the icons.
+\item tooltips\\
+Tooltip text is shown if the user moves the mouse over a form field.
+Most users know the concept of tooltips from other applications.\\
+Tooltip text can not (yet?\footnote{2008-02-07}) be set using
+hyperrefs form field options, so we use JavaScript instructions
+to set up tooltips.
+\end{itemize}
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0022.tex b/info/pdf-forms-tutorial/en/forms-src/fde0022.tex
new file mode 100644
index 0000000000..b8318bf1ee
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0022.tex
@@ -0,0 +1,22 @@
+To create a help annotation use
+\begin{lstlisting}
+~\pdfannot width 20pt {
+ /Subtype /Text
+ /Name /Help
+ /C [0.65 0.79 0.94]
+ /T (Help text title)
+ /Contents (The help text to show.)
+}\(\qquad\)
+\end{lstlisting}
+No room is reserved by pdf\LaTeX{} for the icon, so we add some
+space (qquad). To have some room between the form field and the help
+icon we use a non-breaking space.
+
+The ``/Name /Help'' entry chooses the annotation icon
+(question mark).\\
+The ``/C'' entry sets the icon color, I recommend to use the same color
+as used in the form fields.
+
+Example ex0012 shows how to use \textsc{pdf} annotations to provide
+help.
+\clearpage
diff --git a/info/pdf-forms-tutorial/en/forms-src/fde0023.tex b/info/pdf-forms-tutorial/en/forms-src/fde0023.tex
new file mode 100644
index 0000000000..8367a452a2
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fde0023.tex
@@ -0,0 +1,13 @@
+Use
+\begin{lstlisting}
+this.getField("fieldname").userName = "Help text here";
+\end{lstlisting}
+to set up tooltip texts. The instruction should be run in the
+function executed automatically when the document is opened.
+
+Example ex0013 shows how to set up tooltip texts.
+
+If you use the ``inputenc'' package you have to use special
+notations in JavaScript code to express foreign characters
+(i.\,e. german umlauts), see~\vref{sec:fde0020}.
+\clearpage
diff --git a/info/pdf-forms-tutorial/en/forms-src/fdl.tex b/info/pdf-forms-tutorial/en/forms-src/fdl.tex
new file mode 100644
index 0000000000..b5e3b87e68
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/fdl.tex
@@ -0,0 +1,421 @@
+% This file is a section. It must be included in a larger document to work
+% properly.
+\section{GNU Free Documentation License}\label{sec:fdl}
+
+Version 1.2, November 2002\\
+
+
+ Copyright \copyright\ 2000,2001,2002 Free Software Foundation, Inc.\\
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\\
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+\subsection*{PREAMBLE}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document ``free'' in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\subsection{APPLICABILITY AND DEFINITIONS}
+\label{applicability}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The ``Document'', below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as ``you''. You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject. (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not ``Transparent'' is called ``Opaque''.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, \LaTeX\ input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The ``Title Page'' means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section ``Entitled XYZ'' means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as ``Acknowledgements'',
+``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
+of such a section when you modify the Document means that it remains a
+section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\subsection{VERBATIM COPYING}
+\label{verbatim}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in
+section~\ref{copying}.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\subsection{COPYING IN QUANTITY}
+\label{copying}
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\subsection{MODIFICATIONS}
+\label{modifications}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections~\ref{verbatim} and \ref{copying} above,
+provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+\renewcommand{\labelenumi}{\Alph{enumi}.}
+\begin{enumerate}
+\item Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+\item List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+\item State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+\item Preserve all the copyright notices of the Document.
+\item Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+\item Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+\item Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+\item Include an unaltered copy of this License.
+\item Preserve the section Entitled ``History'', Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled ``History'' in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+\item Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the ``History'' section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+\item For any section Entitled ``Acknowledgements'' or ``Dedications'',
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+\item Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+\item Delete any section Entitled ``Endorsements''. Such a section
+ may not be included in the Modified Version.
+\item Do not retitle any existing section to be Entitled ``Endorsements''
+ or to conflict in title with any Invariant Section.
+\item Preserve any Warranty Disclaimers.
+
+\end{enumerate}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\subsection{COMBINING DOCUMENTS}
+\label{combining}
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section~\ref{modifications}
+above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled ``History''
+in the various original documents, forming one section Entitled
+``History''; likewise combine any sections Entitled ``Acknowledgements'',
+and any sections Entitled ``Dedications''. You must delete all sections
+Entitled ``Endorsements''.
+
+
+\subsection{COLLECTIONS OF DOCUMENTS}
+\label{collections}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\subsection{AGGREGATION WITH INDEPENDENT WORKS}
+\label{aggregation}
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an ``aggregate'' if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section~\ref{copying} is applicable to
+these copies of the Document, then if the Document is less than one half
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+\subsection{TRANSLATION}
+\label{translation}
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of
+section~\ref{modifications}.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled ``Acknowledgements'',
+``Dedications'', or ``History'', the requirement
+(section~\ref{modifications}) to Preserve
+its Title (section~\ref{applicability}) will typically require
+changing the actual title.
+
+
+\subsection{TERMINATION}
+\label{termination}
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\subsection{FUTURE REVISIONS OF THIS LICENSE}
+\label{future}
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns. See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License ``or any later version'' applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+\subsection*{ADDENDUM: How to use this License for your documents}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+\begin{quote}
+ Copyright \copyright\ YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+\end{quote}
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the ``with...Texts.'' line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
diff --git a/info/pdf-forms-tutorial/en/forms-src/forms.tex b/info/pdf-forms-tutorial/en/forms-src/forms.tex
new file mode 100644
index 0000000000..fce94e7a78
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms-src/forms.tex
@@ -0,0 +1,102 @@
+\documentclass[12pt,a4paper,origlongtable]{scrartcl}
+\usepackage{ifpdf}
+\usepackage[latin1]{inputenc}
+\usepackage{mathptmx}
+\usepackage[scaled=.92]{helvet}
+\usepackage{courier}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+% \usepackage[intlimits]{amsmath}
+% \usepackage{amsfonts,amssymb,amscd}
+% \usepackage{trfsigns}
+\usepackage{array}
+\usepackage{enumerate}
+\usepackage{longtable}
+\usepackage{latexsym}
+\usepackage{listings}
+\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
+\usepackage{varioref}
+\usepackage{makeidx}
+\usepackage{color}
+\ifpdf
+\usepackage[activate=normal]{pdfcprot}
+% \usepackage{microtype}
+\usepackage[pdftex]{graphicx}
+\usepackage{epstopdf}
+\pdfcompresslevel=9
+\usepackage[
+ pdftex,
+ a4paper=true,
+ pdftitle={PDF-Formulare mit pdflatex, hyperref und insdljs},
+ pdfsubject={PDF-Formulare},
+ pdfauthor={Dirk Krause},
+ colorlinks=true,
+ bookmarks,
+ bookmarksnumbered,
+ linkcolor=black,
+ pdfpagemode=UseNone,
+ pdfstartview={XYZ 0 835 1.25}
+]{hyperref}
+\usepackage{attachfile}
+\else
+\usepackage[dvips]{graphicx}
+\DeclareGraphicsRule{.png}{eps}{.bb}{`bmeps #1}
+\usepackage[dvips]{hyperref}
+\usepackage{attachfile}
+\fi
+% \definecolor{red}{rgb}{1,0,0}
+
+\def\theyear{2007}
+
+% \parindent0cm
+\newcommand{\pdflatex}[0]{pdf\/latex}
+\author{Dirk~Krause}
+\title{PDF-form creation using \pdflatex{}, hyperref and insdljs}
+\include{cover}
+\renewcommand*{\sectfont}{\bfseries}
+\makeindex
+\hyphenation{
+Ja-va-Script
+}
+
+\begin{document}
+\begin{sloppy}
+\maketitle\clearpage
+\tableofcontents\clearpage
+\section{Introduction}\input{fde0001}\clearpage
+\section{hyperref and PDF forms}\input{fde0002}\clearpage
+\section{Before we start}
+\subsection{Document preamble}\input{fde0003}\clearpage
+\subsection{Form element attributes}\input{fde0004}\clearpage
+\section{The first form}
+\subsection{Goal}\input{fde0005}
+\subsection{First attempt: ex0001}\input{fde0006}\clearpage
+\subsection{Aligning elements in a table: ex0002}\input{fde0007}\clearpage
+\subsection{Spaces and element widths: ex0003}\input{fde0008}\clearpage
+\subsection{Label text position: ex0004}\input{fde0009}\clearpage
+\subsection{Colors: ex0005}\input{fde0010}\clearpage
+\subsection{JavaScript: ex0006}\input{fde0011}\clearpage
+\subsection{Document events: ex0008 and ex0009}\input{fde0012}\clearpage
+\subsection{Form element events: ex0010}\input{fde0013}\clearpage
+\subsection{Editable choice list: ex0011}\input{fde0014}\clearpage
+\subsection{Adding help}
+\subsubsection{Overview}\input{fde0021}
+\subsubsection{PDF annotations}\input{fde0022}
+\subsubsection{Tooltips}\input{fde0023}
+\section{Another form}
+\subsection{Goal}\input{fde0015}
+\subsection{Initializing a choice list using JavaScript: ex0101}\input{fde0016}\clearpage
+\section{Form number three: Interactive application}
+\subsection{Goal}\input{fde0017}
+\subsection{Processing button click events: ex0201}\input{fde0018}\clearpage
+\section{Form number four: using both insdljs and inputenc}\input{fde0020}
+\appendix
+\section{History}\input{fde0019}\clearpage
+\input{fdl.tex}\clearpage
+\bibliographystyle{alpha}
+\bibliography{bib}
+\clearpage
+\printindex
+\end{sloppy}
+\end{document}
+
diff --git a/info/pdf-forms-tutorial/en/forms.pdf b/info/pdf-forms-tutorial/en/forms.pdf
new file mode 100644
index 0000000000..cb4d8dccdd
--- /dev/null
+++ b/info/pdf-forms-tutorial/en/forms.pdf
Binary files differ
diff --git a/info/pdf-forms-tutorial/fdl.txt b/info/pdf-forms-tutorial/fdl.txt
new file mode 100644
index 0000000000..d2c2e8d523
--- /dev/null
+++ b/info/pdf-forms-tutorial/fdl.txt
@@ -0,0 +1,397 @@
+ GNU Free Documentation License
+ Version 1.2, November 2002
+
+
+ Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as "you". You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject. (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled "History" in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the "History" section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+ or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns. See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+ Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.