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) |