Expandierung von Makros und bedingten Ausdrücken
Alle Einstellungen in der Konfigurationsdatei können festgelegte Makros und berechenbare
Ausdrücke, basierend auf einer einfacher Stackmaschine (wie alte HP-Taschenrechner) enthalten.
Durch diese Neuerung wird PrintMulti unheimlich flexibel. Lesen Sie später bei den Beispielen, wie
Sie z.B. folgendes erreichen können:
Papierformatbasiertes Drucken (auf einen Drucker A3 Jobs, auf einen anderen A4 Jobs)
Benutzerabhängiges Drucken (z.B. nur bestimmte Personen dürfen farbig drucken)
Seitenzahlabhängiges Drucken (z.B. ab 1000 Seiten automatisch auf einen schnelleren Drucker
oder in diesem Fall Duplex mit 4 Seiten/Sheet)
Dokumentabhängiges Drucken (z.B. Dokumentenname enthält „Rechnung" dann auf einen
hochwertigen Drucker)
Datumsabhängiges Drucken (z.B. Nachts auf einen leisen Drucker)
Der unbedarfte Anwender könnte trotzdem nur einen Drucker „sehen".
Makros
Makros sind formatierbare Kürzel für bekannte Daten aus dem Druckjob, der Konfiguration oder von
Umgebungsvariablen. Der oft angesprochene „Devicemode" enthält Einstellungen, die der Anwender
beim Drucken in den Druckereinstellungen vorgenommen hat wie das Papierformat, den
Duplexmode (Drucken auf Vor- und Rückseite), ...
Der Devicemode enthält viele Standardeinstellungen, die als Makro zur Verfügung stehen und
zusätzliche druckertreiberabhängige Werte auf die nicht zugegriffen werden kann (z.B.
Ausgabeschächte, ...)
Hier ein Beispiel aus der Konfiguration der Logdatei, welche viele Beispiele enthält.
„#T;#(06)J;#(-20)P;#(07)C;#(-20)U;#(-20)M;#(-30)D;#(5)Z;#(5)c;#(-6)B;#(-20)A;#(-20)E"
Es gelten folgende Regeln für die zu ersetzenden Strings:
Ein Makro beginnt mit ‚#' wahlweise gefolgt von einem Formatausdruck in Klammern und
einem abschließenden Buchstaben z.B.: „#(...)Z" oder
ein durch ‚%'-Zeichen eingeschlossene Umgebungsvariable. Z.B: „%TEMP%". Es können
nur Systemumgebungsvariablen verwendet werden.
Hier zunächst die verschiedenen Makrokürzel
Makro
Type
Sonstige und Informationen aus den Jobdaten des Druckjobs
String
A
String
B
DWORD
C
String
D
String
K
E
String
F
String
G
String
Bedeutung
Name der Aktion (z.B. „ActionFotodrucker1Co" im Beispiel oben)
Aktionstype, momentan „print" oder „exec"
Druckerspezifischer Zähler (für den Hauptdrucker). Wird mit jedem
Druckjob hochgezählt und ist in der Registry beim Drucker hinterlegt.
Name des Dokuments, wie in die Anwendung übergibt
Name des Dokuments wie bei #D. Ungültige Zeichen für Verzeichnisnamen
werden durch einen Unterstrich ersetzt. (<>:"/\|)
Aktionsspezifischer Text wird ersetzt durch den Druckername des
Slavedruckers bei Druckausgaben (z.B: „Fotodrucker")
Dateiname der kopierten Spooldatei
Aktionsspezifischer Dateiname. Falls bei einer „print"-Aktion in eine Datei
gedruckt wird, in das dieser Dateiname. In allen anderen Fällen der Name
17