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 Etikettenende (meist ein besonderes Kommando) nicht erkennbar, und die Kommandos zum Einfügen von Texten oder Barcodes sind unbekannt.
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:
Das sind die bisher unterstützten Konfigurationen. Zusätzlich gibt es jetzt neu:
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.
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.
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.