Es soll Leute geben, die PDF nicht so mögen (viele Grüsse an Ralf). Ich finde PDF auch nicht die beste Erfindung. Leider kann man sich von gewissen Dingen nicht entziehen.
Es gibt einfachere Methoden zum Erstellen eines PDF-Formulars. Der Vorteil dieser Methode ist jedoch das genaue Positionieren der Felder auf einem Formular.
Im Internet findet man die Erweiterung für Formulare unter dem Stichwort acroforms. Adobe stellt eine umfangreiche Dokumentation zu diesem Thema zur Verfügung. Es empfiehlt sich, eine Vorlage aus dem Internet zu kopieren und entsprechend anzupassen. Die Datei vorlage.ps enthält alles Notwendige, um ein Formular erstellen zu können. Angefügt werden müssen die Seiteninformationen, Text und Formularfelder, z.B.
%%Page: 1 1
2.834645669 2.834645669 scale
%%EndPageComments
/ReEncode { exch findfont dup length dict begin { 1 index /FID eq { pop pop } { def } ifelse } forall
/Encoding ISOLatin1Encoding def currentdict end definefont pop } bind def
/Helvetica-Bold /ISOfont ReEncode /ISOfont findfont 8 scalefont setfont
15 275 moveto (Testformular) show
/Helvetica-Bold /ISOfont ReEncode /ISOfont findfont 4 scalefont setfont
30 260 moveto (Name) show
30 240 moveto (Vorname) show
[ /T (BEM1) /Subtype /Widget /FT /Tx /DA (/Helv 9 Tf 0 g)
/Rect [ 105 258 180 265 ] /F 4 /BS << /5 /5 /W 1 >> /MK << /R 0 >> /ANN pdfmark
[ /T (BEM2) /Subtype /Widget /FT /Tx /DA (/Helv 9 Tf 0 g)
/Rect [ 105 238 180 245 ] /F 4 /BS << /5 /5 /W 1 >> /MK << /R 0 >> /ANN pdfmark
30 220 moveto (Lieblingsauto) show
[ /Subtype /Widget
/Rect [105 200 180 225]
/F 4
/T (List Box)
/FT /Ch
/DA (/Helv 12 Tf 1 0 0 rg)
/Opt [(Raseratti)
(ChefRolle)
(PeuChaud)
(ViehApp)
(Lammsorgini)
(Perpedes)
(Wollwo)
(Moppel)
(Zuzucki)
(Citztzueng)]
/DV (3)
/V (3)
/MK <<
/BG [1 1 1] % Background: white
/BC [0 0 0] % Border colour: black
>>
/ANN pdfmark
showpage
%%PageTrailer
%%Trailer
%%Pages: 1
%%EOF
Erklärung:
- Seitennummerierung
- Skalierung für Millimeter
- Kodierung für Latin1 (damit Umlaute ausgegeben werden – Datei muss in Kodierung ISO-8859-1 sein)
- Setzen der Schriftgrösse in 8 mm
- Text für Titel
- Setzen Schriftgrösse in 4 mm
- Text für Beschriftung Felder
- Textfeld (wichtig sind die Werte in /Rect für die Positionierung und /Helv für Schriftgrösse und Schriftfarbe)
- Seite ausgeben
Das ganze Beispiel ist in der Datei testformular.ps und testformular.pdf. Ich finde, dass sich Okular oder Firefox bestens für die Anzeige von PDF-Formularen eignen.
Der Befehl zum Umwandeln der Postscript-Datei in PDF lautet:
gs -q -sDEVICE=pdfwrite -dNOPAUSE -dNOSAFER -sOutputFile=testformular.pdf -dFIXEDMEDIA -sPAPERSIZE=a4 testformular.ps -c quit
Im Internet findet man haufenweise Formulare als PDF ohne Formularfelder. Um ein solches PDF nachträglich mit Formularfeldern zu versehen, kann die Datei von PDF in Postscript mit dem Befehl
pdf2ps pdfdatei postscriptdatei
umgewandelt werden. Den Vorlage-Code für Formularfelder und Code für die Felder muss an der richten Stelle eingebaut werden. Das ist eher kompliziert. Ich empfehle, den Postscript-Code aus vorlage.ps ohne die ersten 6 Zeilen vor der ersten Seite einzufügen, als vor
%%Page: 1 1
Im Anhang habe ich ein Beispiel eingefügt (Angebot_Fuehrungen_forms.ps), welches ich von PDF in Postscript umgewandelt habe. Die Stellen, wo ich den Code für die Formularfelder eingefügt habe, sind mit %Philipp gekennzeichnet. In diesem Beispiel befinden sich die Formularfelder auf der 2. Seite. Somit ist der Code für diese Felder nach
%%PageTrailer
%%Page: 2 2
%%PageBoundingBox: 0 0 595 841
%%BeginPageSetup
9 0 obj
<>
/Contents 10 0 R
>>
endobj
%%EndPageSetup
einzufügen. Wichtig sind in diesem Bereich die Befehle gsave und grestore. Damit ist sichergestellt, dass Formatierungsanweisungen nur innerhalb dieses Blocks Gültigkeit haben und nicht den Rest des Dokumentes beeinflussen.
Das Umwandeln in PDF erfolgt wieder mit dem obenerwähnten Befehl gs.
Download Zip-Datei.