Neue GPD-Attribute für Windows Vista, die nur für die Root-Ebene gelten
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 folgende Liste beschreibt die GPD-Attribute, die ab Windows Vista neu sind. Um die Abwärtskompatibilität mit Windows-Versionen vor Windows Vista zu erhalten, sollten Sie diese Attribute mit dem folgenden Code umgeben.
*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks
PrintProcDuplexOptions
Das Attribut PrintProcDuplexOptions steuert verschiedene Duplex-Optionen in einem Druckprozessor. Dieses Attribut kann einen der folgenden Werte annehmen:
1: Umgekehrte Seiten für umgekehrtes Duplex
2: Generierung einer zusätzlichen Leerseite unterdrücken, wenn möglich
3: Beide der oben genannten Punkte
0: Keine der obigen Optionen
Wenn PrintProcDuplexOptions den Wert 1 hat, steuert es, ob der Druckprozessor die Seiten bei umgekehrtem Duplexdruck umdrehen soll.
Angenommen, Sie müssen ein vierseitiges Dokument mit n-up = 1 drucken und möchten den Rückwärtsdruck und den Duplexdruck verwenden. Da Sie den Rückwärtsdruck wünschen, möchten Sie die letzte Seite vor der ersten Seite drucken. Da Sie beidseitig drucken möchten, wollen Sie zwei Seiten auf ein einziges Blatt Papier drucken. Der Druckprozessor kann die Seiten in einem der beiden folgenden Formate wiedergeben (wobei jedes Zahlenpaar die beiden Seiten angibt, die auf den beiden Seiten eines einzelnen Blattes Papier gedruckt würden):
Format 1: (4,3),(2,1)
Format 2: (3,4),(1,2)
Vor Windows Vista hat ein Druckprozessor die Reihenfolge im Format 2 [(3,4),(1,2)] gedruckt. In Windows Vista und neueren Versionen ist das Standardformat jedoch das Format 1 [(4,3),(2,1)]. Diese Änderung erfolgte, weil viele Drucker das Format 2 nicht korrekt ausgeben, d. h. die gedruckten Seiten sind nicht in der richtigen Reihenfolge angeordnet.
Wenn Ihr Drucker jedoch korrekt mit Format 1 arbeitet, müssen Sie für Windows Vista und höher nichts ändern. Wenn Ihr Drucker jedoch fehlerhaft mit Format 1 arbeitet und Sie zu Format 2 zurückkehren möchten, fügen Sie das folgende Code-Beispiel in Ihre GPD-Datei ein.
*Ifdef: WINNT_60
*PrintProcDuplexOptions: 1
*Endif: WINNT_60
Format 1 funktioniert möglicherweise besser in bestimmten Ausrichtungen oder bei bestimmten Kombinationen von Eingabe- und Ausgabefächern, während Format 2 in anderen Kombinationen besser funktioniert. Daher können Sie das Attribut PrintProcDuplexOptions in ein Switch/Case-Konstrukt einfügen.
Bei einem Unidrv-Treiber aus der Zeit vor Windows Vista ist das Format 2 die Standardeinstellung und kann nicht geändert werden. Bei einem Windows Vista-Druckprozessor ist das Format 1 die Standardeinstellung und kann nicht geändert werden.
Für den Windows Vista Unidrv-Treiber ist bei einem Druckprozessor vor Windows Vista das Format 2 die Vorgabe und das GPD-Attribut wird ignoriert. Bei einem Windows Vista-Druckprozessor ist das Format 1 die Vorgabe, aber Sie können das Format mit dem Attribut PrintProcDuplexOptions ändern.
Wenn PrintProcDuplexOptions den Wert 2 hat, verhindert es die Generierung von Leerseiten in bestimmten Duplex-Szenarien.
Dieses Attribut steuert, ob Sie beim Duplexdruck zusätzliche Leerseiten an den Drucker senden sollen. Wenn es sich beispielsweise um einen einseitigen Auftrag handelt und Duplex eingeschaltet ist (angenommen n-up = 1), muss nur eine Seite des Blattes bedruckt werden. Derzeit drucken die Drucker eine Seite und generieren dann eine leere Seite auf der Rückseite. (Da der Druckauftrag mit duplex=on gestartet wurde, erwartet der Drucker zwei Seiten, bevor er das Blatt auswirft. Wenn die zweite Seite nicht gedruckt wird, warten manche Drucker weiter). Die Nachteile der aktuellen Lösung sind folgende:
Die generierte Seite verursacht eine fehlerhafte Seitenzählung in der Buchhaltungssoftware und im Seitenzähler des Druckers.
Wenn die Seite halb aus dem Drucker herauskommt (bei einigen Druckern des Typs Hewlett Packard DeskJet), kann der Benutzer versuchen, sie herauszuziehen, während der Drucker versucht, sie wieder einzuziehen. Diese Situation kann zu Hardwareproblemen führen.
Sie können die oben genannten Probleme vermeiden, indem Sie *PrintProcDuplexOptions: 2 in der GPD-Datei angeben.
Beachten Sie, dass selbst wenn dieses Attribut festgelegt ist, die Leerseitenoptimierung nur in den folgenden begrenzten Fällen durchgeführt wird:
Beim Rückseitendruck wird die Leerseitenoptimierung nur dann durchgeführt, wenn der gesamte Auftrag auf eine einzige Seite des Papiers passt (z. B. ein einseitiger Auftrag mit n-up=1 oder ein vierseitiger Auftrag mit n-up =4). Wenn der Auftrag mehr als ein Blatt benötigt, wird die Optimierung nicht durchgeführt (da die Druckseiten in einer falschen Reihenfolge gedruckt werden). Bei einem dreiseitigen Auftrag können die Seiten beispielsweise in der Reihenfolge 3,2,1,<leer> statt 4,3,2,<leer> gedruckt werden.
Die Leerseitenoptimierung wird nicht durchgeführt, wenn der Druckprozessor Kopien simulieren muss. Der Druckprozessor simuliert Kopien, wenn die Anzahl der benötigten Kopien größer ist als die Anzahl der Kopien, die der Druckprozessor herstellen kann.
Die folgende Situation ist ein Beispiel dafür, wann Simulationen stattfinden und Leerseiten generiert werden (falls erforderlich):
- Zwei Kopien für einen Drucker, der keine Kopien erstellen kann
Die folgenden Situationen sind Beispiele dafür, dass die Simulation nicht stattfindet und Sie die Erzeugung zusätzlicher Seiten unterdrücken können:
- Auftrag mit einer Kopie für einen Drucker, der keine Kopien erstellen kann
- Auftrag mit fünf Kopien für einen Drucker, der mehr als eine Kopie erstellen kann
Verwendung von PrintProcDuplexOptions
*Ifdef: WINNT_60
*PrintProcDuplexOptions: 2
*Endif: WINNT_60
In manchen Fällen stört es Sie vielleicht nicht, wenn eine zusätzliche Seite gedruckt wird, in anderen Fällen schon. Daher können Sie das Attribut PrintProcDuplexOptions in ein Switch/Case-Konstrukt einfügen.
Bei einem Unidrv-Treiber vor Windows Vista druckt der Drucker bei Bedarf eine zusätzliche Leerseite und Sie können dieses Verhalten nicht ändern. Bei einem Windows Vista-Druckprozessor druckt der Drucker bei Bedarf eine zusätzliche Leerseite und Sie können dieses Verhalten nicht ändern.
Für den Windows Vista Unidrv-Treiber gilt: Wenn Sie einen Druckprozessor vor Windows Vista haben, druckt ein Drucker eine zusätzliche Leerseite, wenn dies für notwendig erachtet wird, und das GPD-Attribut wird ignoriert. Andernfalls, wenn Sie einen Windows Vista-Druckprozessor haben und das entsprechende GPD-Attribut und die richtigen Bedingungen vorhanden sind (d. h. die Bedingungen, die weiter oben zur Verhinderung des Drucks von Leerseiten beschrieben wurden), druckt ein Drucker keine Leerseiten.
PreAnalysisOptions
Das Attribut PreAnalysisOptions kann einen der folgenden Werte haben:
0: Alle Pre-Analysis-Modi deaktivieren.
1: Standardmodus. Aktivieren Sie die Analyse von monochromem Text in Z-Reihenfolge und die Optimierung des Leerbereichs. Dieser Modus ist für Geräte mit einer herunterladbaren Schriftart oder Unterstützung für Geräte-Schriftarten und hochauflösenden (600 dpi oder höher), 24 bpp Rendermodi aktiviert.
2: 1 bpp Optimierung für 24 bpp ImageProcessing Callback-Funktionen aktivieren.
4: Unterstützung für das Gerät-StretchBlt aktivieren.
8: Hersteller-Pre-Analyse-Modus aktivieren.
16: Debugmodus für 1 bpp aktivieren, bei dem das Band vor dem Aufruf der ImageProcessing-Callback-Funktion in 24 bpp konvertiert wird.
UseBMPFontCompression?
Das Attribut UseBMPFontCompression? steuert, ob Unidrv die Daten komprimieren soll, wenn Schriftarten als Bitmap heruntergeladen werden. Der Standardwert von UseBMPFontCompression? ist FALSE, d. h. Unidrv führt keine Datenkomprimierung durch, wenn dieses Attribut in der GPD-Datei nicht vorhanden ist. Dieser Standardwert erhält die Kompatibilität mit älteren Versionen von Unidrv, die nicht über die Funktion der Datenkomprimierung von Bitmap-Schriften verfügten. Sie sollten dieses Attribut nur dann auf TRUE festlegen, wenn Ihr Drucker die Datenkomprimierung von Bitmap-Schriften unterstützt. Die komprimierten Bitmap-Zeichendaten liegen im komprimierten run-length-with-line-repetition Format vor.
UseMode5Compression?
Das Attribut UseMode5Compression? steuert, ob UniDrv die Mode 5-Datenkomprimierung verwenden soll. Bei der Mode 5-Komprimierung (oder Methode 5) handelt es sich um eine adaptive Datenkomprimierung, sodass mehrere andere Komprimierungsmethoden (wie z. B. Unencoded, TIFF oder Delta-Row) kombiniert verwendet werden können. Der Standardwert von UseMode5Compression? ist FALSE, was bedeutet, dass Unidrv keine adaptive Datenkomprimierung durchführt, wenn dieses Attribut in der GPD nicht vorhanden ist. Dieser Standardwert erhält die Kompatibilität mit älteren Versionen von Unidrv, die nicht über die Funktion der adaptiven Datenkomprimierung verfügten. Sie sollten dieses Attribut nur dann auf TRUE festlegen, wenn Ihr Drucker die adaptive Datenkomprimierung unterstützt.
UseHPGLPolylineEncoding?
Das Attribut UseHPGLPolylineEncoding? steuert, ob Unidrv die Polyline-Kodierung verwenden soll. HP-GL/2 unterstützt die Befehle Pen Up/Pen Down/Draw Absolute/Draw Relative zum Zeichnen von Vektoren. Der Befehl polyline encoded (PE) ist eine effizientere Methode zur Darstellung von Vektoren.
Der Standardwert für UseHPGLPolylineEncoding? ist FALSE, was bedeutet, dass Unidrv den PE-Befehl nicht verwendet, wenn dieses Attribut in GPD nicht vorhanden ist. Dieser Standardwert erhält die Kompatibilität mit älteren Versionen von Unidrv, die keine Unterstützung für den PE-Befehl hatten. Sie sollten diesen Wert nur dann auf TRUE festlegen, wenn Ihr Drucker den Befehl polyline encoded unterstützt.
PrintSchemaPrivateNamespaceURI
Das Attribut PrintSchemaPrivateNamespaceURI definiert den privaten Namespace URI, den der Core-Treiber für die Offenlegung privater PPD-Funktionen oder Optionen in PrintTicket oder PrintCapabilities verwenden soll. Das Attribut muss im Root des GPD-Dokuments erscheinen und enthält eine ASCII-Darstellung eines URI, der zur Definition eines Namespace in PrintTickets- und PrintCapabilities-Dokumenten verwendet wird. Dieser URI wird wiederum mit allen Funktionen und Optionen verknüpft, für die es keine explizite Zuordnung zum öffentlichen Schema gibt oder die der Core-Treiber nicht kennt.
PrintSchemaKeywordMap
Das Attribut PrintSchemaKeywordMap erscheint unter den Feature- und Option-Konstrukten in der GPD-Datei. Dieses Attribut gibt an, welchen Namen des öffentlichen Druckschemas Sie mit den druckerdefinierten Funktionen verwenden sollten. Sie können jede Option, die in einer GPD-Datei angegeben ist, mit Ausnahme von Duplex und Collate, im PrintTicket umbenennen, indem Sie das Attribut PrintSchemaKeywordMap verwenden.
Der GPD-Parser ignoriert dieses Attribut für Funktionen, die explizit erkannt werden, einschließlich Seitengröße und Farbe.
Alle Werte sollten in Anführungszeichen gesetzt werden. Sie werden in Unicode konvertiert, indem die in der GPD angegebene Code-Seite verwendet wird, sofern vorhanden. Doppelte Definitionen von Attributen werden auf die gleiche Weise aufgelöst wie andere GPD-Attribute: Die zuletzt gelesene Definition erhält den Vorrang.
Wenn Sie eine Funktion einem Druckschema-Schlüsselwort zuordnen, das bereits in der GPD-Datei verwendet wird, kann es sein, dass das entsprechende PrintCapabilities-Dokument diese Funktion mehr als einmal aufführt. Ein mehrfaches Vorkommen kann verwirrend sein, daher sollten Sie Funktionen nicht Druckschema-Schlüsselwörtern zuordnen, die in der GPD-Datei verwendet werden.
Der GPD-Parser generiert automatisch die Option FORMSOURCE für die Funktion InputBin und ordnet sie dem Schlüsselwort AutoSelect im Druckschema zu. Wenn Ihre GPD-Datei eine InputBin-Option enthält, die das PrintSchemaKeywordMap-Attribut verwendet, um die Option einem Druckschema-Schlüsselwort zuzuordnen, wird die Funktion im Druckschema eine FORMSOURCE-Option im Device-Namespace enthalten. AutoSelect erscheint im PrintCapabilities-Dokument und verweist auf die Option, die im PrintSchemaKeywordMap-Attribut der GPD-Datei angegeben ist.
Das folgende Code-Beispiel zeigt eine partielle GPD-Datei, um das Layout zu veranschaulichen.
*Feature: HPSTAPLER
{
*Name: "Staple"
*DefaultOption: Off
* PrintSchemaKeywordMap: "Staple"
*Option: Off
{
*Name: "Off"
* PrintSchemaKeywordMap: "Off"
}
*Option: On
{
*Name: "On"
* PrintSchemaKeywordMap: "On"
}
}
IsXPSDriver
Das Attribut IsXPSDriver verwendet die folgende GPD-Syntax.
*IsXPSDriver?: TRUE | FALSE
Sie können das Windows Vista Unidrv-Konfigurationsmodul (Unidrvui.dll) sowohl für Microsoft Win32 GDI-Treiber als auch für die neuen XPSDrv-Treiber verwenden. Um das Unidrv-Konfigurationsmodul für XPSDrv-Treiber zu verwenden, muss die GPD-Datendatei des XPSDrv-Treibers das Attribut IsXPSDriver angeben und seinen Wert auf TRUE festlegen.
Wenn Sie zum Beispiel einen XPS-Treiber haben, verwenden Sie den folgenden Code.
*IsXPSDriver?: TRUE
Um das Unidrv-Konfigurationsmodul für Win32-GDI-Treiber zu verwenden, müssen Sie dieses Attribut nicht angeben.
UseImageForHatchBrush?
Das Attribut UseImageForHatchBrush? verwendet die folgende GPD-Syntax.
*Ifdef: WINNT_60
*UseImageForHatchBrush?: TRUE
*Endif: WINNT_60
Wenn Unidrv in Microsoft Windows Server 2003 oder Windows XP im HP-GL/2-Modus druckt und in der Funktion DrvRealizeBrush ein Schraffurpinsel empfangen wird, sendet Unidrv einen Befehl, damit der Drucker den entsprechenden Schraffurpinsel auswählt. Unidrv hat keinen Einfluss darauf, wie der Schraffurpinsel gerendert wird. Zum Beispiel wird der Abstand zwischen den Linien normalerweise durch die Auflösung gesteuert. Bei einer höheren Auflösung werden die Abstände kleiner, während sie bei einer niedrigeren Auflösung größer sind. Daher kann ein Dokument bei unterschiedlichen Auflösungen unterschiedlich gedruckt werden.
Wenn in Windows Vista im GPD das Attribut UseImageForHatchBrush? angegeben ist, rendert Unidrv den Schraffurpinsel auf eine Bitmap-Oberfläche und sendet diese Bitmap dann an das Gerät. Unidrv hat also eine gewisse Kontrolle darüber, wie der Schraffurpinsel gerendert wird.
ReverseBandOrder?
Das Attribut ReverseBandOrder? verwendet die folgende GPD-Syntax.
*Ifdef: WINNT_60
*ReverseBandOrder?: TRUE
*Endif: WINNT_60
Der Wert von ReverseBandOrder? ist TRUE oder FALSE, um anzugeben, ob Reverse Banding aktiviert ist. Dieses Attribut bewirkt, dass das Banding in umgekehrter Reihenfolge erfolgt. Bei einer Seite im Hochformat erfolgt das Banding zum Beispiel von unten nach oben statt von oben nach unten.
Dieses Attribut entspricht im Wesentlichen dem Attribut ReverseBandOrderForEvenPages?, mit der Ausnahme, dass ReverseBandOrder? auch dann berücksichtigt wird, wenn Duplex nicht aktiv ist (ReverseBandOrderForEvenPages? funktioniert nur, wenn Duplex aktiviert ist), und es funktioniert für alle Seiten (ReverseBandOrderForEvenPages? funktioniert nur für gerade Seiten). Einzelheiten zur Verwendung von ReverseBandOrder? und weitere Informationen dazu finden Sie unter *ReverseBandOrderForEvenPages?. Beachten Sie insbesondere, dass Plug-ins die Scan-Zeilen und die Bits in der Scan-Zeile umkehren müssen.
Sie können eine Kombination aus *ReverseBandOrderForEvenPages? und *ReverseBandOrder? verwenden.
Wenn nur ReverseBandOrder? auf TRUE festgelegt ist, wird das Banding für alle Seiten umgedreht.
Wenn nur ReverseBandOrderForEvenPages? auf TRUE festgelegt ist, wird das Banding nur für gerade Seiten umgekehrt, wenn der Drucker duplex druckt. Wenn kein Duplexdruck festgelegt ist, wird die Einstellung ReverseBandOrderForEvenPages ignoriert.
Wenn sowohl ReverseBandOrder? als auch ReverseBandOrderForEvenPages? festgelegt sind, geschieht Folgendes:
Wenn Duplex eingeschaltet ist (ON), wird das umgekehrte Banding für ungerade Seiten durchgeführt (d. h. 1, 3, 5, 7 usw.).
Wenn Duplex OFF ist, wird das Reverse Banding für alle Seiten durchgeführt.
BidiQueryFile
Das Attribut BidiQueryFile verwendet die folgende GPD-Syntax.
*BidiQueryFile: <GPD or GDL file name>
Verwenden Sie BidiQueryFile, um den GPD- oder GDL-Dateinamen anzugeben, der die Autokonfigurationsdaten des Druckertreibers BidiQuery oder BidiResponse enthält. Der GPD- oder GDL-Dateiname sollte keinen Pfad enthalten. Wenn die Autokonfigurationsdaten in der GPD-Datei DataFile des Treibers enthalten sind, können Sie auch diese GPD-Datei als Wert des Attributs BidiQueryFile angeben.
Das folgende Code-Beispiel zeigt ein Beispiel für dieses Attribut in einer partiellen GPD-Datei.
*Ifdef: WINNT_60
*BidiQueryFile: "ACnfgUni.GDL"
*Endif: WINNT_60