Master-Einheiten
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.
Die meisten Drucker unterstützen Befehle mit einer Vielzahl von horizontalen und vertikalen Auflösungen. So kann beispielsweise der Befehl Sofortiger Zeilenvorschub für einen bestimmten Drucker eine Auflösung von 1/288 Zoll bieten, während derselbe Drucker eine vertikale Grafikauflösung von 1/96 Zoll unterstützt. Ebenso könnte dieser Drucker auch horizontale Auflösungen von 1/80, 1/160 und 1/320 Zoll bieten.
Unidrv bietet ein einziges Koordinatensystem, um diese verschiedenen Auflösungen zu verarbeiten. Die Einheiten in diesem Koordinatensystem werden Master-Einheiten genannt. Die Master-Einheiten eines Druckers werden als Wertepaar (x, y) ausgedrückt, wobei x die Master-Einheit für die horizontale Richtung und y die Master-Einheit für die vertikale Richtung ist.
Um die Master-Einheiten einer Ebene zu bestimmen, berechnen Sie das kleinste allgemeine Vielfache (LCM) der Nenner für die tatsächlichen Auflösungen. Mit dem Beispieldrucker würden Sie wie folgt vorgehen:
Berechnen Sie die LCM von 80, 160 und 320, was 320 ergibt. Die horizontale Master-Einheit ist also 1/320 eines Zolls.
Berechnen Sie die LCM von 288 und 96, was 576 ergibt. Die vertikale Master-Einheit ist also 1/576tel eines Zolls.
Wichtig
Sowohl die Werte für die Master-Einheit als auch die vertikale und horizontale Auflösung sollten ein Vielfaches der Anzahl der Pins im Druckkopf sein (d. h. der Wert PinsPerPhysPass). Wenn diese Bedingung nicht erfüllt ist, kann es vorkommen, dass bei bestimmten Papierformaten zusätzliche Leerzeilen erzeugt werden.
Um die Master-Einheiten eines Druckers anzugeben, verwenden Sie das Attribut *MasterUnits. Das Format des Attributs ist wie folgt
*MasterUnits: PAIR ( X_Nenner , Y_Nenner )
wobei X_Nenner der LCM der Nenner für die horizontalen Auflösungen ist und Y_Nenner der LCM der Nenner für die vertikalen Auflösungen ist. Der folgende GPD-Eintrag gibt die Master-Einheiten für das Beispiel an:
*MasterUnits: PAIR(320, 576)
Allgemein müssen die in GPD-Dateieinträgen verwendeten Positions- und Größenwerte in Master-Einheiten angegeben werden. Um zum Beispiel festzulegen, dass die maximale angepasste Seitengröße für unseren Beispieldrucker 9 Zoll mal 12 Zoll beträgt, würde der folgende Eintrag verwendet, wobei 9x320=2880 und 12x576=6912:
*MaxSize: PAIR(2880, 6912)
Verwenden Sie bei der Berechnung der Werte für die Master-Einheiten nur die Geräteauflösungen, die von Unidrv unterstützt werden sollen. Wenn ein Drucker beispielsweise horizontale Auflösungen von 1/80, 1/96, 1/160 und 1/320 Zoll unterstützt, Sie aber nicht beabsichtigen, die Auflösung von 1/96 Zoll in Ihrer GPD-Datei anzugeben, sollten Sie diese nicht in Ihre LCM-Berechnung aufnehmen.
Wenn Ihr Drucker Cursor-Befehle zum Bewegen der Cursorposition unterstützt, müssen die für die Attribute *XMoveUnit und *YMoveUnitCursor angegebenen Werte in die Berechnungen der Master-Einheit einbezogen werden. Angenommen, eine GPD-Datei enthält beispielsweise die folgenden Einträge:
*XMoveUnit: 60
*YMoveUnit: 60
Bei der Berechnung der Master-Einheiten dieses Druckers muss 1/60 Zoll in die Berechnung der horizontalen und vertikalen Master-Einheiten einbezogen werden.