Zeige letzte Bearbeiter
1 {{content/}}
2
3 Mittels der Aktion Word (Fill) kann ein PDF-Dokument anhand einer bestehenden Word-Vorlage erstellt werden. Entsprechende Bereich im Word-Dokument werden durch den Inhalt von Formularfelder befüllt. Dies kann z.B. verwendet werden für eine Bestätigung mit den Kontaktdaten und der Frage bei einem Online-Kontaktformular.
4
5 == Word-Version ==
6
7 Es werden alle Versionen ab Word 97 unterstützt.
8
9 == Einfügen von Formularfeldern ==
10
11 {{figure image="WordDevTools.png" width="400"}}
12 Aktivieren der Registerkarte //Entwicklertolls// in den Otionen unter //Datei// {{rarrow/}} //Optionen//.
13 {{/figure}}
14
15 Um Bereiche im Word-Dokument mit Inhalten aus Formularfeldern zu befüllen, müssen sogenannte Textformularfelder (Formularsteuerelemente) in das Word-Dokument eingefügt werden.
16
17 Hierzu muss in Word oben in die Registerkarte //Entwicklertools// gewechselt werden. Wird diese nicht angezeigt, kann sie über //Datei// {{rarrow/}} //Optionen// {{rarrow/}} Menüband anpassen {{rarrow/}} //Häkchen rechts bei Entwicklertools// eingeblendet werden.
18
19 {{figure image="WordElement.png" width="400"}}
20 Einfügen eines Formularsteuerelements mit den Entwicklertools. Dieses wird dann durch Formularwerte ersetzt.
21 {{/figure}}
22
23 Nun kann in den //Entwicklertools// im Abschnitt //Steuerelemente// ein //Textfeld (Formularsteuerelement)// in das Word-Dokument eingefügt werden.
24
25 Durch Doppelklick auf das somit eingefügte graue Steuerelemente öffnet sich ein Fenster, wo in dem Feld //Standardtext// der Name des Formularelements eingegeben wird, mit dessen Inhalt das Feld befüllt wird.
26
27 {{info}}
28 Bei wiederholten Feldern wird das Feld mit den Werten aller dynamisch erzeugten Felder kommasepariert befüllt. Bei drei dynamischen Kopien des Textfelds //Vorname// also z.B. //Anton,Sabine,Odo//.
29 {{/info}}
30
31 Siehe hierzu auch [[wiederholte Felder>>Formcycle.FormDesigner.ElementProperties.BaseProperties]].
32
33 == Beispiel ==
34
35 Im Folgenden nun ein einfaches Beispiel zur Verdeutlichung.
36
37 {{figure image="WordFillExample2.png" width="400"}}
38 Beispiel für ein Word-Dokument, das mit Daten aus dem Formular befüllt wird. Es werden die Formularfelder mit den entsprechenden Namen dazu genommen.
39 {{/figure}}
40
41 Bei diesem Beispiel wird das Steuerelement mit dem Standardtext //tfVorname// bei der PDF-Generierung mit dem Inhalt des Formularelements mit dem Namen //tfVorname// ersetzt. Genauso wird das Steuerelement //tfNachname// und //tfFrage// mit dem Inhalt des entsprechenden Formularelements ersetzt.
42
43 == Word-Fill-Funktionen ==
44
45 Falls es nicht ausreicht, direkt den Inhalt eines Formularelementes zu übernehmen, stehen noch einige Funktionen zur Verfügung. Diese werden immer auf ein Formularelement angewendet.
46
47 Zum Beispiel ist bei [[Auswahlelementen>>Formcycle.FormDesigner.FormElements.Selection]] der Inhalt des Formularelements der im Designer eingestellte Wert wie etwa //1// oder //2// statt //Frau// oder //Herr// für die Auswahl der Anrede . Um stattdessen den Anzeigetext der ausgewählten Option einzufügen, kann die Funktion //lsttxt// verwendet werden. Heißt das Formularelement //sel1//, so gibt man im Steuerlement Folgendes ein.
48
49 {{code language="none"}}
50 sel1.lsttxt()
51 {{/code}}
52
53 == Verfügbare Funktionen ==
54
55 {{table dataTypeAlpha="0" preSort="0"}}
56 |= Funktion |= Beschreibung |= Beispiele |= Erläuterung
57 | lsttxt |Ersetzung aller Werte einer Auswahl mit dem Text-Wert. Steht für //list text.//| SEL1.lsttxt() |Liefert den Text-Wert des [[Auswahlelements>>Formcycle.FormDesigner.FormElements.Selection]] mit Namen //SEL1// zurück
58 | 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.
59 | lst |Ersetzung aller Werte einer Auswahl mit dem entsprechenden col-Attributs. Dabei muss das col-Attribut mit der laufenden Nummer übergeben werden. Die erste Spalte hat die Nummer 0. Wird eine Datenquelle für die Auswahl verwendet, bei welcher die erste Zeile als Header fungiert, dann muss statt dem col-Attribut der Headername der Spalte verwendet werden. |SEL1.lst(col2) oder SEL1.col(Anrede)|Liefert die 3. Spalte bzw. die Spalte mit dem Namen "Anrede" (wenn die erste Zeile als Header dient) einer Datenquelle (falls hinterlegt) des Auswahlelements mit Namen //SEL1// zurück.
60 | con |Prüfung ob ein Wert in der Liste vorhanden ist. Bei Mehrfachauswahl hilfreich. Steht für //contains.//| SEL1.con(5) |Liefert //1,// wenn das Auswahlelement mit Namen //SEL1// einen Wert vorhanden ist, sonst //0, //wenn keine Auswahl getroffen wurde//.//
61 | cnt |Zählt die vorhandenen Werte. Bei dynamic sinnvoll. Steht für //count//.| SEL1.cnt() |Liefert die Anzahl der erzeugten Elemente des auf [[wiederholt geschalteten>>Formcycle.FormDesigner.ElementProperties.BaseProperties]] Auswahlelements //SEL1//.
62 | rmp |Einen Absatz (Paragraphen) entfernen. Steht für //remove paragraph.// | EL1.rmp() |Entfernt Zeile und Paragraphen, wenn Inhalt des Elements leer ist
63 | rmr |Tabellenzeile löschen, in der sich das Steuerelement befindet. Steht für //remove row.// |{{{EL1.rmr(x)}}} |Entfernt die Zeile der Tabelle, wenn das Formularelement //EL1// den Wert //x// hat.
64 | rmt |Tabelle löschen, in der sich das Steuerelement befindet. Steht für //remove table.// |{{{EL1.rmt(y)}}}|Entfernt die Tabelle, wenn Formularelement //EL1// den Wert //y// hat.
65 | rmtp |Tabelle, in der sich das Steuerelement befindet, und den direkt darauf folgenden Paragraphen entfernen. Steht für //remove table paragraph//. |{{{EL1.rmtp(y)}}} |Entfernt die Tabelle und direkt folgenden Paragraphen, wenn das Formularelement //EL1// den Wert //y// hat.
66 | rep |Den gegebenen Wert durch einen anderen Wert ersetzen. Syntax: {{code language="none"}}EL.rep(W1|W2#R1|R2){{/code}} oder {{code language="none"}}EL.rep(W1#R1){{/code}}. Steht für //replace.//|EL1.rep(on~|off#x~|o) |Der Wert //on// wird durch //x// ersetzt und der Wert //off// wird durch //o// ersetzt.
67 | cf |Ändert den Zeichensatz in //Wingdings//. Wird meist in Kombination mit der //rep//-Funktion genutzt. Steht für //change font.// |EL1.rep(on~|off#x~|o).cf() |Der Wert //on// wird durch //x//, //off// durch //o// ersetzt. Anschließend werden die Werte //x// und //o// durch die entsprechenden Wingdings-Symbole (? und ?) ersetzt.
68 | image |Ersetze Feld mit Bild aus URL. Dabei können auch Breiten- und Höhenangaben mit übergeben werden. |EL1.image() , EL1.image(100~|100), EL1.image(100), EL1.image(~|100) |Befüllt das Steuerelement mit dem Bild aus der URL, die im Formularelement //EL1// steht. Beispiele für Höhenangaben: {{code language="none"}}tfURL.image(579|410){{/code}} wobei 579 die Breite und 410 die Höhe angibt. Sollte nur eine Breite ({{code language="none"}}tfURL.image(579){{/code}}) oder Höhe ({{code language="none"}}tfURL.image(|410){{/code}}) angegeben werden, wird das Bild skaliert um das ursprüngliche Seitenverhältnis beizubehalten.
69 | b64img |Wandelt Base64-String in ein Bild um. Dabei können auch Breiten- und Höhenangaben mit übergeben werden. |EL1.b64img(), EL1.b64img(100~|100), EL1.b64img(100), EL1.b64img(~|100) |Interpretiert den Feldwert als Base64-String (in der Form //iVBORw0KGgoAAAANSUhEUgAAABAAAA...//) und fügt das Bild in das Dokument ein. Beispiele für Höhenangaben: {{code language="none"}}tfBase64.b64img(579|410){{/code}} wobei 579 die Breite und 410 die Höhe angibt. Sollte nur eine Breite ({{code language="none"}}tfURL.b64img(579){{/code}}) oder Höhe ({{code language="none"}}tfURL.b64img(|410){{/code}}) angegeben werden, wird das Bild skaliert um das ursprüngliche Seitenverhältnis beizubehalten.
70 | url |Erzeugt einen Link auf eine URL. | EL1.url() |Fügt eine URL in das PDF-Dokument ein, die Adresse wird aus dem Formularelement //EL1// genommen.
71 |cb |Erzeugt eine angehakte [[Checkbox>>Formcycle.FormDesigner.FormElements.Checkbox]], wenn der übergebene Wert in der Liste der Werte des Elements vorhanden ist. Sonst ist diese nicht angehakt. Steht für //Checkbox//.| SEL1.cb(1) |Erzeugt eine angehakte Checkbox, wenn der Wert 1 unter den Werten in SEL1 vorhanden ist, sonst nicht angehakt.
72 {{/table}}
73
74 == Probleme beim Erzeugen von Checkboxen ==
75
76 Wenn beim Einsatz der Funktion **cb()** im generierten PDF Dokument keine Checkbox angezeigt wird, liegt es wahrscheinlich an fehlenden Schriften auf dem Server. Dies tritt in der Regel nur auf, wenn der Server auf einem Linux-Server installiert wurde.
77
78 Um das Problem zu lösen gehen Sie bitte folgendermaßen vor:
79
80 * Melden Sie sich auf dem Linux-Server, auf dem FORMCYCLE installiert ist, an der Konsole an.
81
82 * Wechseln Sie zum Ordner für Systemschriften (unter Debian/Ubuntu ist dies z.B. ///usr/share/fonts/truetype///) und prüfen Sie, ob die Schriften //windings.ttf// und //windings2.ttf// vorhanden sind. Hinweise zur Installation finden Sie auch unter dem Artikel [[Schriftarten >>https://wiki.ubuntuusers.de/Schriftarten/]].
83
84 * Wenn nicht, kopieren Sie dies Schriften in den Ordner. Aus Lizenzgründen können wir diese Schriften nicht zur Verfügung stellen, so dass Sie diese selbst etwa von einem Windows Rechner kopieren müssen.
85
86 * Starten Sie den Tomcat neu.
87
88 == Videos ==
89
90 [[Workshop-Video>>doc:Workshops.2020.052020 Teil 2 - Word Fill.WebHome]]
Copyright 2000-2024