Value-Makros
Wichtig
Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie unter Modern Print-Plattform und der Anleitung zum Design der Print-Support-App.
Ein Value-Makro wird verwendet, um einen Satz von einem oder mehreren Werten anzugeben, die Sie einzeln und wiederholt in eine generische Druckerbeschreibungsdatei (GPD) einfügen möchten. Bei den Werten kann es sich um jeden der GPD-Wertetypen handeln.
Für die Verwendung von Value-Makros gelten die folgenden Regeln:
Eine Value-Makrodefinition innerhalb einer GPD-Datei muss vor allen Verweisen auf sie stehen.
Ein Value-Makro, das auf Root-Ebene definiert ist (d. h. nicht in geschweiften Klammern), ist über die GPD-Datei, die es definiert, verfügbar, nachdem es definiert wurde. Andernfalls ist der Geltungsbereich eines Value-Makros die Menge der linken und rechten geschweiften Klammern, die seine Definition enthalten.
Ein Value-Makro muss auf einen der GPD-Werttypen aufgelöst werden.
Eine Value-Makrodefinition kann auf andere zuvor definierte Value-Makros verweisen, wenn alle Werte Textstrings sind, aber ein Value-Makro kann nicht auf sich selbst verweisen.
Value-Makros akzeptieren keine Argumente.
Wenn Sie zwei Value-Makros mit demselben Namen erstellen, gilt die erste Definition so lange, bis der GPD-Parser auf die zweite Definition stößt. Die zweite Definition ersetzt dann die erste. Endet der Geltungsbereich der zweiten Definition, wird die erste Definition wiederhergestellt.
Format des Value-Makros
Um ein oder mehrere Value-Makros in einer GPD-Datei zu definieren, verwenden Sie das folgende Format:
*Makros: *ValueMacroGroupName { ValueMacroBody }
Der ValueMacroGroupName ist ein eindeutiger Name, und ValueMacroBody ist ein Satz eindeutiger Wertnamen und zugehöriger Werte, wie folgt:
ValueMacroName: MacroValue
Dabei ist ValueMacroName ein eindeutiger Makroname, und MacroValue steht für einen GPD-Werttyp. (MacroValue kann Verweise auf zuvor definierte Value-Makros enthalten, solange die aufgelöste Zeichenfolge einen GPD-Werttyp darstellt)
So könnten Sie beispielsweise Value-Makros für eine Reihe häufig verwendeter Befehlspräfixe wie folgt definieren:
*Macros: HP4L
{
LetterCmdPrefix: "<1B>&l2a8c1E<1B>*p0x0Y"
A4CmdPrefix: "<1B>&l26a8c1E<1B>*p0x0Y"
Env10CmdPrefix: "<1B>&l81a8c1E<1B>*p0x0Y"
}
ValueMacroGroupName (HP4L im Beispiel) ist optional und wird wie ein Kommentar behandelt.
Value-Makros referenzieren
Um ein Value-Makro zu referenzieren, verwenden Sie das folgende Format:
= WertMakroname
Dabei ist ValueMacroName ein eindeutiger Name, der zuvor in dem *Makros-Eintrag angegeben wurde, der das Makro definiert.
Um beispielsweise eines der HP4L-Makros innerhalb einer Befehlsspezifikation zu referenzieren, könnten Sie die folgenden Einträge verwenden:
*Command: CmdSelect
{
*Cmd: =LetterCmdPrefix "<1B>*c0t5760x7680Y"
}
Sie können nur dann einen Wert zuweisen, indem Sie Makroreferenzen mit Nicht-Makrowerten kombinieren, wenn alle Makrodefinitionen und andere Werte Text oder Befehlsteilstrings darstellen, wie im Beispiel dargestellt. In allen anderen Fällen muss die Makroreferenz den gesamten zuzuweisenden Wert darstellen.