Wiki-Quellcode von Voraussetzung PDF


Zeige letzte Bearbeiter
1 {{content/}}
2
3 {{figure image="pdf_fill_0.png"}}{{/figure}}
4
5 {{figure image="pdf_fill_1.png"}}{{/figure}}
6
7 Die Aktion [[PDF-Datei befüllen>>doc:WebHome]] wird zum Befüllen bestehender PDF-Formulare verwendet. Damit die Felder im PDF-Formular mit Inhalt aus einem Formularelement befüllt werden können, muss die Struktur des PDF-Dokuments bekannt sein. Der einfachste Weg an diese Informationen zu kommen, ist es, das PDF-Formular mit dem Programm zu öffnen, mit dem es erstellt wurde.
8
9 Eine weitere Möglichkeit ist die Verwendung des Online-Tools PDFEscape, welches Sie unter der folgenden Adresse erreichen: [[pdfescape.com>>url:http://pdfescape.com]]. Hier können Sie ein PDF-Dokument hochladen und dieses dann bearbeiten und analysieren. Wenn Sie mit der linken Maustaste ein Formularelement im PDF ausgewählt haben, klicken Sie darauf mit der rechten Maustaste und klicken auf //Object Properties//. Hier können Sie dann unter //name// den momentanen Namen einsehen und gegebenenfalls ändern.
10
11 == Vorbereitung PDF ==
12
13 === Schriftarten ===
14
15 Alle Zeichen, die in ein Formularfeld im PDF-Dokument eingetragen werden sollen, müssen in der Schriftart vorhanden sein, die für das Formularfeld festgelegt wurde. Zudem muss die Schriftart im PDF-Dokument eingebettet sein. Zudem sollten im Formular von {{formcycle/}} die entsprechenden Formularfelder validiert werden.
16
17 Falls beispielsweise nur die Sprache Englisch unterstützt werden soll, sollten alle Formularfelder im Formular, die in das PDF-Dokument übertragen werden, dahingehend validiert werden, dass diese nur die Buchstaben, Zahlen und Interpunktionszeichen enthalten, um z.B. keine arabischen oder chinesischen Zeichen.
18
19 === Analyse PDF ===
20
21 Formularfelder in einem PDF-Dokument haben wie bei einem {{formcycle case="dat"/}}-Formular alle einen bestimmten Namen.
22
23 Öffnen Sie das zu befüllende PDF mit einem entsprechenden Editor und notieren Sie sich die Namen der Elemente, die Sie befüllen möchten.
24
25 Bei [[Radiobuttons und Checkboxen>>Formcycle.Designer.Form.FormElements.Selection]] gibt es immer einen Wert für //An// und //Aus//! Der Wert für //Aus// ist im Allgemeinen //Off//, siehe Abbildung.
26
27 === Zuordnung zu Formularfeldern. ===
28
29 Nun müssen die Felder im PDF-Dokument einem Formularelement zugeordnet werden. Es gibt zwei Möglichkeiten für diese Zuordnung (//Mapping//) zwischen Formularfeldnamen und den PDF-Feldnamen.
30
31 * Im PDF werden die gleichen Feldnamen wie im Formular verwendet, z.B. //s1 //oder //tf1//. Trifft dies zu, sind keine Änderungen am Formular notwendig.
32 * Wenn die Feldnamen im PDF nicht mehr geändert werden können, muss ein [[Alias>>Formcycle.Designer.Form.ElementProperties.BaseProperties]] für die Formularelemente verwendet werden. Diese werden direkt im {{designer/}} an einem Element rechts unter //Grundeigenschaften// vergeben. Geben Sie hier den Namen an, der im PDF-Dokument verwendet wird.
33
34 === Dynamische Felder ===
35
36 Um auf ein dynamisch geschaltetes Feld zuzugreifen, wird der Name des Felder mit Unterstrich und Index verwendet. Heißt ein Feld etwa //tfMail// und soll auf das 3. dynamisch erzeugte Feld zugegriffen werden, wird //tfMail_2// verwendet. Der Index startet bei 0, das erste Feld wird daher mit //tfMail_0// referenziert.
37
38 === Konvertierung von Formularwerten ===
39
40 Der Wert eines Formularelements vom Typ Auswahlliste ist nicht der Wert, der im Formular angezeigt wird. Im {{designer/}} kann für eine Auswahlliste rechts unter //Eigenschaften// für jede Option //Auswahl//, //Wert// und //Titel// vergeben werden. //Auswahl// ist der Text, der dem Nutzer im Formular angezeigt wird, //Wert// ist der Text, der intern im HTML verwendet wird und der bei der PDF-Befüllung genutzt wird.
41
42 Um nun statt dem //Wert// den Text von //Auswahl// zu nutzen, gibt es ähnlich wie bei dem Aktionstyp [[Word (Fill)>>doc:Formcycle.Designer.Workflow.Actions.FillWordDocument.WebHome]] hierzu Funktionen. Um etwa den Text von //Auswahl// des Formularelements mit Namen //sel1// anzuzeigen, wird im PDF statt //sel1// dann //sel1-lsttxt// eingegeben.
43
44 Um eine der zur Verfügung stehenden Funktionen zu nutzen, wird deren Name mit einem Bindestrich getrennt an den Namen bzw. Alias des Formularlements angehangen.
45
46 === Konvertierungsfunktionen ===
47
48 Es stehen folgende Funktionen zur Verfügung, mit denen die Werte, mit denen das PDF befüllt wird, zu ändern.
49
50 {{table dataTypeAlpha="0" preSort="0"}}
51 |= Funktion |= Beschreibung |= Beispiel |= Erläuterung
52 |lsttxt|Ersetzung aller Werte einer Auswahl mit dem Text-Wert. Steht für //list text.//|SEL1-lsttxt|Liefert den Text-Wert des [[Auswahlelements>>Formcycle.Designer.Form.FormElements.Selection]] mit Namen //SEL1// zurück
53 |lsttitle|Ersetzung aller Werte einer Auswahl mit dem Titel-Wert. Steht für //list title//.|SEL1-lsttitle|Liefert den Titel-Wert (falls hinterlegt) des Auswahlelements mit Namen //SEL1// zurück
54 |b64img|Interpretiert den Wert als Base64-kodiertes Bild und fügt das Bild in das Dokument ein.|edSig-b64img|Fügt die im [[Formular eingegebene Unterschrift>>Formcycle.Designer.Form.CodingPanel.ScriptTab.HandwrittenSignature ]] in das Dokument in Bildform ein.
55 |[+]|Ermöglicht es, den Wert von 2 Formularfeldern zu verknüpfen. Nimmt den Wert vor und nach dem {{code language="none"}}[+]{{/code}} und sucht nach Formularfeldern mit diesen Namen.|Vorname[+]Nachname|Verknüpft den Wert des Formularfelds mit Namen //Vorname// mit dem Wert des Formularfelds //Nachname//.
56 |[br]|Fügt einen Zeilenumbruch {{code language="none"}}\n{{/code}} ein. Muss mit dem Operator {{code language="none"}}[+]{{/code}} genutzt werden.|Wort1[+][br][+]Wort2[+][br][+]Wort3|Fügt die Werte der Formularelemente mit Namen //Wort1//, //Wort2// und //Wort3// getrennt mit Zeilenumbruch ein.
57 |[sp]|Fügt eine Leerzeichen {{code language="none"}} {{/code}} ein. Muss mit dem Operator {{code language="none"}}[+]{{/code}} genutzt werden.|Wort1[+][sp][+]Wort2[+][sp][+]Wort3|Fügt die Werte der Formularelemente mit Namen //Wort1//, //Wort2// und //Wort3// getrennt mit Leerzeichen ein.
58 |[cb_]|Genutzt für Auswahlelemente, die mehr als eine Option ausgewählt haben können. In einem PDF-Dokument müssen alle Optionsfelder einen unterschiedlichen Namen haben.
59 Um die Zuordnung zu dem Auswahlelement von {{formcycle/}} zu ermöglichen, müssen die Optionselemente im PDF-Dokument das Namensschema {{code language="none"}}[cb_<index>]{{/code}}. haben. Beispielsweise sollten die Namen zweier Optionselemente für ein Auswahlelement mit Namen //sel1// {{code language="none"}}sel1[cb_1]{{/code}} und {{code language="none"}}sel1[cb_2]{{/code}} sein.|selEntscheidung[cb_1]|Die erste Option //Ja// eines Auswahlelementes mit dem Namen //selEntscheidung//.
60 {{/table}}
61
62 == Videos ==
63
64 [[Workshop-Video>>https://help6.formcycle.eu/xwiki/bin/view/Workshops/2020/052020%20PDF%20Print%2C%20PDF%20Fill%2C%20PDF-A%20und%20PDF%20Merge/]] (Der Workshop bezieht sich auf FORMCYCLE Version 6. Die grundsätzlichen Inhalte sind aber auf Version 7 übertragbar)