Die Firma SAP hat ihre Anwendung mit einem kompletten Druck- und Spooling-System ausgestattet, um eine einheitliche Schnittstelle zu allen Druckfunktionen zu schaffen, unabhängig davon, auf welcher Rechnerplattform mit welchem Betriebssystem läuft, und genauso unabhängig vom konkreten Ausgabegerät. Das interne Drucksystem erzeugt für eine ganze Reihe von Ausgabegeräten bereits druckfertige Datenströme, die vom Betriebssystem des Host-Rechners nur noch zum Ausgabegerät übertragen werden müssen.
Im SAP System werden in den sogenannten Device Types alle Informationen zu einem Ausgabegerät hinterlegt. Alle Geräte von diesem Typ benutzen den gleichen Device Type, sodass sich eine Modifikation sofort auf alle betroffenen Geräte auswirkt.
Für convert4print können im Prinzip alle Device Types genutzt werden, die einen PCL4-, PCL5-, PCL5e- oder PCL5c-Datenstrom erzeugen. Für die Aktivierung eines besonderen Prozesses im convert4print-System bedarf es allerdings einer kleinen Modifikation am Device Type.
Welcher Device Type konkret als Grundlage für die notwendige Modifikation verwendet wird, hängt vom gewünschten Zieldrucker ab. Wenn für diesen Drucker kein eigenes Device Type existiert, tut es meist eines der gängigen HP-Modelle (ZHPxxx) oder einer der Device Types ZA0x1xxx (Latin 1) oder ZA0x2xxx (Latin 2).
Im Device Type sind sogenannte Formate angelegt, was letztendlich nichts weiter als Beschreibungen von verschiedenen Papierformaten sind. Da diese Formate die PJL-Sequenzen enthalten, die für die Einrichtung eines Druckauftrags benötigt werden, ist auch hier die Modifikation für convert4print anzubringen.
In jedem Format gibt es eine Printer initialization-Sequenz, deren Inhalt vom als Ausgangspunkt gewählten Device Type abhängt.
Im Prinzip steht dort aber irgend etwas ähnlich dem folgenden:
Wichtig ist das sogenannte Universal Exit Language ('\e%-12345X') welches den Drucker auf den Wechsel in den PJL-Modus vorbereitet, der dann mit dem ersten '@PJL\r\n' aktiviert wird. An dieser Stelle können nun die für convert4print notwendigen PJL-Sequenzen eingefügt werden.
PJL-Sequenz | Bedeutung |
---|---|
@PJL SET COMPUTER=„<string>“ | Kennzeichnet den druckenden Rechner. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET USER=„<string>“ | Kennzeichnet den Benutzernamen. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET MODEL=„<string>“ | Kennzeichnet den Host-Drucker. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET FORM=„<string>“ | Kennzeichnet das Formular, mit dem der Druckauftrag ausgeführt werden soll. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET JOBID=„<string>“ | Kennzeichnet den Namen des Druckauftrags. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET JOBNO=„<num>“ | Kennzeichnet die Nummer des Druckauftrags. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET FILEID=„<string>“ | Kennzeichnet den Namen der Druckdatei. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET FILENO=„<num>“ | Kennzeichnet die Nummer der Druckdatei. Dieser Wert kann später in Skripten abgefragt werden. |
@PJL SET USRDATA=„<string>“ | Beliebige Zeichenkette zur Kennzeichnung der Druckdatei. Dieser Wert kann später in Skripten abgefragt werden. |
Zentraler Punkt ist die Auswahl eines Formulars. Welches Druckattribut aus dem SAP System Verwendung findet, ist von Fall zu Fall zu entscheiden, aber es liegt nahe, den Formatnamen selbst zu nehmen, um dann in der Applikation durch Auswahl des Formats zu entscheiden, mit welchem Formular convert4print den Druckauftrag bearbeiten soll. Das erfordert natürlich ein eigenes Format für jedes convert4print-Formular.
Eine mögliche modifizierte Version der Printer Init-Sequenz wäre dann etwa die folgende: