(zu alt für eine Antwort)
Acrobat-Formulare mit hyperref: TextField formatieren und berechnen
Friedrich Forsthuber
2005-03-20 16:26:34 UTC
Hallo NG,

beim Erstellen eines Acrobat-Formulars mit hyperref und pdflatex bin ich auf
folgende Schwierigkeiten gestoßen:

Beim Formatieren eines Textfeldes ist es mir nur mittels der format-Option
und JavaScript gelungen, eine Schriftart auszuwählen, allerdings konnte ich
nur eine Systemschriftart zuweisen. Kann man mit JavaScript auch eine (ins
pdf eingebettete) "Latex-Schrift" zuweisen bzw. direkt im Latex-Code eine
Schriftart zuweisen?

Ich habe mit der calculate-Option eine Berechnung für ein Textfeld erstellt.
Wenn ich das pdf im Adobe Reader 7.0 oder in Acrobat 6.0 öffne, bleibt das
Feld leer, erst wenn ich im Acrobat in den Eigenschaften des Feldes unter
Berechnung - Benutzerdef. Berechnungsskipt das Skript mit Strg.-Enter
ausführen lasse, macht das Feld genau das, was ich will, auch, wenn ich das
pdf so abspeichere und dann wieder öffne. Wie kann man eine Berechnung
erstellen, die gleich funktioniert?

Vielen Dank für Eure Hinweise!
Gruß
Fritz
Uwe Ziegenhagen
2005-03-20 16:48:11 UTC
Post by Friedrich Forsthuber
Hallo NG,
Kannst du mal ein Minimaldokument posten? Erstens erleichtert es die
Hilfe, zweitens würde ich den Formularcode mal gern sehen.

Uwe
--
mail to ***@ziegenhagen.info is read only from time to time. If
you need an urgent answer, google for me.
Friedrich Forsthuber
2005-03-20 18:46:45 UTC
Uwe Ziegenhagen schrieb
Post by Uwe Ziegenhagen
Kannst du mal ein Minimaldokument posten? Erstens erleichtert es die
Hilfe, zweitens würde ich den Formularcode mal gern sehen.
\documentclass{article}
\usepackage[pdfpagemode=None,pdfstartview=FitH]{hyperref}

\begin{document}

\begin{Form}

\TextField[name=Betrag.1,format={var f =
this.getField('Betrag.1');f.textFont = 'Verdana';f.strokeColor =
['T'];f.fillColor=['T'];f.userName = 'Erster
Betrag'},value=1250,charsize=10pt]{Betrag 1}

\TextField[name=Betrag.2,format={var f =
this.getField('Betrag.2');f.textFont = 'Verdana';f.strokeColor =
['T'];f.fillColor=['T'];f.userName = 'Zweiter
Betrag'},value=500,charsize=10pt]{Betrag 2}

\TextField[name=Summe,format={var f = this.getField('Summe');f.textFont =
'Verdana';f.strokeColor = ['T'];f.fillColor=['T'];f.userName =
'Summe'},calculate={this.getField('Summe').value =
this.getField('Betrag.1').value + this.getField('Betrag.2').value
;},charsize=10pt,readonly = true]{Summe}

\end{Form}

\end{document}

Dieses Beispiel zeigt genau das beschriebene Verhalten, allerdings habe ich
bemerkt, dass es nicht reicht, den JS-Code einfach ausführen zu lassen, man
muss den Code auch vorher in Textfeld-Eigenschaften -> Berechnung ->
Benutzerdef. Berechnungsskript editieren, damit das Feld dann funktioniert
wie gewünscht (man muss allerdings dabei den Code nicht verändern, es
reicht, nach dem letzten Semikolon ein Leerzeichen einzufügen).

Fritz