Motivation für die Einführung von Textblöcken in print2forms war die Beobachtung, dass in sehr vielen Formualaren noch grosse Anteile von Texten enthalten sind, die zudem noch eine erhöhte Änderungswahrscheinlichkeit haben. Das sind beispielsweise die Geschäftsangaben mit Adresse, Telephonnummern und Geschäftsführern oder etwa Rücksendegründe auf Versandpapieren.
Sind diese Texte Bestandteil eines in print2forms importierten Formulars, muss im Bedarfsfall das Formular geändert und neu importiert werden. Je nachdem ein nicht unbedeutender Aufwand. Es wäre also wartungsfreundlicher, wenn bestimmte Texte des Formulars direkt im Administrationsprogramm von print2forms geändert werden könnten.
In den bisherigen Versionen von print2forms liess sich diese Anforderung im Prinzip schon lösen, wenn für jeden Text ein Textfeld im Formular angelegt wird. Das ist aber sehr aufwändig, weil für jeden Text die Position neu errechnet werden muss, und weil Formatierungen - etaw im Sinne von Fett- oder Kursivschrift - ein neues Textfeld erfordern.
Ab der Build-Nummer 5830 des print2forms-Clients und der Build-Nummer 3104 des print2forms-Gateways steht nunmehr ein sogenanntes Textblockfeld zur Verfügung, das mehrzeilige Texte enthalten kann, und einige Möglichkeiten der Textformatierung via eines bestimmten Markups anbietet. 1)
Weitere Informationen dazu sind in der Beschreibung der Schablone für den Textblock enthalten.
Der Skalierungsfaktor ist eine Dezimalziffer '0' bis '9', was einer Skalierung von 100% bis 190% entspricht. Der Skalierungsfaktor wirkt zum einen auf die Einstellungen Schriftgrösse als auch auf Zeilenvorschub des Textblockfeldes. Ausserdem wird auch noch die mit dem Markup 'I
erzeugte Einrückung entsprechend angepasst.
Demzufolge ist bei einer Schriftgrösse von 12 Punkten ein mit dem Markup '0
versehener Text 12 Punkte gross, während einer mit '5
schon 18 Punkte gross ist. Gleichzeitig mit der Schriftgrösse ändert sich auch der Zeilenabstand. Ein Markup von '5
bedeutet einen 1.5-zeiligen Abstand - aus 6 Zeilen pro Zoll (12 Punkte) werden 4 Zeilen pro Zoll (18 Punkte). 2)
Das kann sehr effektiv für die Gestaltung des Textes eingesetzt werden.
Im obigen Beispiel ist schon am Ende der ersten Zeile zu sehen, dass mit '3
und dem '2
am Anfang der nächsten Zeile der Zeilenabstand etwas vergrössert wird. Dass sorgt für den erhöhten Durchschuss unter 'Passform' und lässt 'Passform' als Überschrift erscheinen. Das gleiche gilt in der viertletzten Zeile, in der mit '4
gefolgt von '2
in der drittletzten Zeile die Liste 'zu kurz:' vertikal abgesetzt wird.
Mit dem Markup Das kann dazu genutzt werden, tatsächlich hängende Einzüge zu erzeugen (zweiter Textblock im nebenstehender Abbildung), oder für die Formatierung von Aufzähl- oder Ankreuzlisten (dritter Textblock im nebenstehender Abbildung). Dabei wird durch den Skalierungsfaktor unmittelbar vor der Einrückung für den nötigen Abstand gesorgt. Nach der Einrückung muss dann über einen weiteren Skalierungsfaktor wieder die ursprüngliche Schriftgrösse hergestellt werden. |
Normalerweise sind die in der Schablone des Textblockfeldes eingegebenen Texte bereits auf Zeilen verteilt. Es gibt aber Anwendungsfälle, in denen das nicht der Fall sein kann, weil in der Schablone zum Beispiel variabler Text aus den Druckdaten eingefügt werden muss. Klassischer Fall ist die Einbettung des Namens einer Bank beim Avis eines Lastschrifteinzugs.
Aus diesem Grund gibt es in den Einstellungen des Textblocks eine Zeilenlänge. Diese wird nicht in Punkten, Milli- oder Zentimetern angegeben, sondern in Zeichen je Zeile. 3)
Der Text innerhalb der Schablone wird sinnvollerweise natürlich ohne einen Zeilenumbruch geschrieben. Im Beispiel enthält die Schablone zu Vergleichszwecken zwei unterschiedlich formatierte Texte mit einem einzusetzenden Banknamen.
Der Zeilenumbruch erfolgt selbstverständlich erst, nachdem alle variablen Daten innerhalb der Schablone eingesetzt worden sind.
Da print2forms die Laufweiten der Texte nicht korrekt ermitteln kann, wird ein Umbruch beim Erreichen einer maximalen Anzahl von Zeichen innerhalb einer Zeile eingefügt. Die Position wird soweit zurückgeschoben, bis eine Wortgrenze 4) erreicht ist. Wie im oberen Textblock zu sehen ergibt das je nach Wortlängen mehr oder minder schönen Flattersatz.
Etwas mildern kann man den Flattersatz, indem man im Text Trennpunkte zwischen den Silben markiert. Das geschieht mit dem Markup '-
. Liegt ein solcher Trennpunkt in der Nähe des Zeilenendes wird er aktiviert, indem ein Bindestrich ausgegeben und die Zeile unmittelbar danach umgebrochen wird. Im unteren Textblock ist zu sehen, wie das Wort 'veranlassen' vor der letzten Silbe getrennt worden ist.
In beiden Textblöcken ist auch zu sehen, dass der eingefügte Name der Bank 'Sparkasse Langen-Seligenstadt' ebenfalls am Bindestrich getrennt worden ist.
Die Motivation für einen Mechanismus zur Unterdrückung von Zeilen resultiert aus dem Wunsch, Texte vertikal zusammenzuschieben, wenn irgendwelche optionalen Bestandteile fehlen. Das ist zum Beispiel bei Adressfeldern der Fall, bei denen durchaus einmal ein oder zwei Zusatzzeilen für den Absender benötigt werden können. Damit diese Zusatzzeilen nicht weissen Leerraum hinterlassen, wenn sie nicht gefüllt sind, sollten die nachfolgenden Zeilen 'hochgezogen' werden.
Dazu gibt es im Textblockfeld ein Markup 's
, welches den Anfang einer optionalen Zeile definiert. In der Regel folgt nach dem Markup innerhalb der Schablone die Ausgabe von variablen Daten aus dem Druckdaten.
Unter der Annahme, dass mit 'Adresse1' bis 'Adresse3' bis zu drei Empfängerangaben aus den Druckdaten aufgenommen wurden, erzeugt der Textblock je nach Umfang der Empfängerangaben die nachfolgend gezeigten Ausgaben.
Die Leerzeile nach dem Empfänger bleibt immer erhalten.
'-
).