Wiki-Quellcode von Voraussetzung PDF
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
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) |