Webseiten-Werkzeuge

Benutzer-Werkzeuge


Platzhalter in Vordrucken

Anforderung

print2forms bietet für die Nutzung von Etikettendruckern einen Mechanismus an, der die extern erzeugten Etikettendatenströme für diese Drucker als einen Vordruck mit Platzhaltern behandelt. Die Platzhalter werden während des Druckprozesses gegen die vorgefundenen Druckdaten ausgetauscht. Auf diese Weise entsteht ein Etikett in der jeweiligen Druckersprache des Etikettendruckers, ohne dass print2forms irgendetwas über diese Druckersprache wissen muss.

Dieser Mechanismus ist die Grundlage dafür, dass praktisch jeder Etikettendrucker mit print2forms nutzbar ist.

Im Zusammenhang mit der Erstellung von Etiketten zur Nutzung auf Etikettendruckern stellt sich aber manchmal das Problem, dass die Druckdaten die notwendigen Daten nicht, oder nicht in der richtigen Darstellung enthalten.

Für PCL-Drucker ist die Lösung dieser Anforderung in der Regel einfach, weil es möglich ist, über die Verwendung von Feldern im Formular die Daten zu beschaffen (ODBC-, HTTP- und Systemfelder) und/oder umzuformatieren. Dafür gibt es innerhalb der Platzhalter einer Ressource einen Verweis auf ein Feld des übergeordneten Formulars.

Das funktioniert, weil print2forms PCL-Datenströme analysieren und das Seitenende erkennen kann. Es werden dann die Formular-Felder unmittelbar vor dem Seitenende generiert und eingefügt.

Etiketten sind zwar auch Seitendrucker, aber print2forms kann den Eitkettendruckerdatenstrom nicht analysieren, weil es nicht für jeden der vielen Typen von Etikettendruckern ein eigenes Analyseprogramm mitführen kann. Somit ist das Etiketten­ende (meist ein besonderes Kommando) nicht erkennbar, und die Kommandos zum Einfügen von Texten oder Barcodes sind unbekannt.

Realisierung

Mit dem Build 5815 des print2forms-Clients und Build 3086 des print2forms-Gateways 1) wird die Handhabung von Platzhaltern in Ressourcen erweitert. Es werden nunmehr unterschiedliche Konfigurationen von Platzhaltern unterschieden:

  • Sind ein Feldindex, ein Auswahlmuster und keine Feldreferenz eingetragen, wird der Platzhalter gegen die durch diese beiden Attribute ausgewählte Zeichenkette der Druckdaten ersetzt. Das ist das bisher übliche Vorgehen und funktioniert sowohl mit PCL-Druckern als auch mit Etikettendruckern.
  • Sind ein XML-Tag, ein Auswahlmuster und keine Feldreferenz eingetragen, wird der Platzhalter durch den Inhalt des XML-Tags aus den Druckdaten ersetzt. Das ist das bisher übliche Vorgehen und funktioniert sowohl mit PCL-Druckern als auch mit Etikettendruckern.
  • Sind ein Feldindex, ein Auswahlmuster und eine Feldreferenz eingetragen, wird der Platzhalter einfach aus dem Vordruck entfernt. Gleichzeitig wird für das referenzierte Feld ein Eintrag für einen Treffer an der vom Platzhalter definierten Stelle mit dem durch das Auswahlmuster vorgegebenen Text erzeugt. Das funktio­niert nur mit PCL-Druckern.
  • Sind ein XML-Tag, ein Auswahlmuster und eine Feldreferenz eingetragen, wird der Platzhalter einfach aus dem Vordruck entfernt. Gleichzeitig wird für das referenzierte Feld ein Eintrag für einen Treffer an der vom Platzhalter definierten Stelle mit dem durch das XML-Tag gekennzeichneten Text erzeugt. Das funktioniert nur mit PCL-Druckern.

Das sind die bisher unterstützten Konfigurationen. Zusätzlich gibt es jetzt neu:

  • Sind weder Feldindex noch Auswahlmuster angegeben, wird die bisherige Feldreferenz als eine Schablone für Text interpretiert. Ganz ähnlich den Schablonen, die in den Feldern der Formulare genutzt werden können.

    Die einfachste Anwendung eines solchen Platzhalters ist der Druck eines konstanten Textes. Das volle Potential der Schablone besteht aber natürlich darin, dass innerhalb der Schablone auf Feldinhalte von übergeordneten Formularen oder Bedingungen des Dokumentenprozesses zugegriffen werden kann.

    Auch die Nutzung von via PJL übertragenen Metadaten (Benutzer, Host, etc) des Druckauftrags ist jetzt möglich, genauso wie der Zugriff auf Dokument- und Seitennummern.


Anwendungsbeispiele

Platzhalter in Ressource:

Das ist der einfachste Fall, der sowohl auf PCL-Druckern als auch auf Etikettendruckern funktioniert. Die bis zu 30 Zeichen aus dem Druckdatenstrom werden gegen den Namen des Platzhalters Strasse ersetzt, nachdem sie zuvor in den Zeichensatz Windows Latin 1 konvertiert wurden.

Diese Variante von Platzhaltern ist die, die in der Regel vom Import-Filter generiert wird.


Platzhalter in Ressource:

Feld im Formular:

Dieses Beispiel fünktioniert nur mit PCL-Druckern. Die Feldreferenz im Platzhalter führt dazu, dass die bis zu 13 durch den Platzhalter gefundenen Zeichen als Treffer für das Feld Leitcode im Formular erzeugt werden. Der Name des Platzhalters Leitcode wird aus dem Vordruck entfernt.

Nachdem (!) der Vordruck ausgegeben wurde, wird die Feldliste des Formulars abgearbeitet. Dabei wird ein Barcode vom Typ Deutsche Post Leitcode erzeugt, dessen Inhalt und Position dem vom Platzhalter Leitcode der Ressource gefundenen Text entspricht. 2)

Nur über diesen Mechanismus können Barcodes und variable Bilder in einen Vordruck eingedruckt werden. Diese Variante von Platzhalter wird vom Import-Filter generiert, wenn beim Import auch das Eingabefeld Feldreferenz ausgefüllt wird.


Platzhalter in Ressource:

Feld im Formular:

Dieses Beispiel funktionert mit PCL-Druckern und mit Etikettendruckern.

Der Platzhalter mit dem Namen RFID wird nicht gegen Druckdaten ersetzt. Stattdessen sorgt die Schablone ~VDA:1 dafür, dass der Text aus dem ersten Teil des Systemfeldes VDA des übergeordneten Formulars entnommen wird. Auch hier wird der Text vor der Ausgabe in den Zeichensatz Windows Latin 1 konvertiert.

Das Systemfeld besorgt die für seine Ausführung notwendigen Druckdaten über seine eigene Feldauswahl. Die entsprechenden Felder des Platzhalters bleiben dagegen leer.

Auf diese Weise können Resultate aus ODBC-, HTTP- und Systemfeldern direkt in einen Vordruck übernommen werden. Damit sind jetzt auch für Etikettendrucker externe Daten beschaffbar und komplizierte Berechnungen oder Konvertierungen durch externe Programme sind einsetzbar.

Diese Variante von Platzhalter kann aktuell nicht vom Import-Filter generiert werden. Sie muss nach dem Import-Vorgang im Administrationsprogramm von print2forms manuell konfiguriert werden.

Hinweise

  • Prinzipiell ist es möglich, mit den Platzhaltern auch Steuerzeichen und Druckerkommandos in den Vordruck einzuschleusen. Da die Wirkung solcher Kommandos letztlich vom Umfeld des Vordrucks um den Platzhalter abhängig ist, ist das nur in den seltensten Fällen ohne Seiteneffekte möglich. Es wird ausdrücklich darauf hingewiesen, dass dies die Unabhängigkeit der Ressource vom Typ des Datenstroms korrumpiert, und auch die Wartbarkeit und Zukunftssicherheit einer Installation verschlechtert. 3)
  • Eine Feldreferenz im Platzhalter kann nur auf 'druckende' Felder (Text-, Barcode- oder Ressourcefelder) erfolgen. Der Grund dafür ist, dass diese Felder erst nach (!) der Bearbeitung der Formular-Ressource (dem Vordruck) abgearbeitet werden. Deshalb funktionieren Feldreferenzen letztlich auch nur mit PCL-Druckern.
  • Die 'nicht druckenden' Felder (ODBC-, HTTP- und Systemfelder) können prinzipiell keine Texte aus einem Platzhalter eines Vordrucks übernehmen. Das liegt daran, dass diese Felder bereits vor (!) der Bearbeitung der Formular-Ressource (dem Vordruck) ausgewertet und abgearbeitet werden.

    Soll beispielsweise in einem ODBC-Feld ein Text aus den Druckdaten genutzt werden, muss das Feld selbst in seiner Feldauswahl danach suchen. Siehe auch das dritte Beispiel oben für ein System-Anfragefeld.



1)
Standardmässig Bestandteil ab print2forms-Installer Build 291. Aber auch lauffähig und nutzbar in Installationen der Installer Builds 280 und 289 bei im Oktober 2019 aktiver Subskriptionsvereinbarung.

2)
Dass der Platzhalter und das Feld den gleichen Namen haben, dient lediglich zur Verdeutlichung der Zusam­mengehörigkeit. Das ist aber keine Bedingung - es dürfen unterschiedliche Namen verwendet werden, so wie im letzten Beispiel.

3)
Die SPE Sys­temhaus GmbH leistet für solche Fälle unabhängig vom Alter der Installation keinen Support! Es gelten die diesbezüglichen Ausführungen über die Supportdauer.
print2forms/tips/tip79.txt · Zuletzt geändert: 2019-10-14 16:25 (Externe Bearbeitung)