Neue Root-Level-Only PPD-Attribute für Windows Vista
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 PPD-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
Das Attribut MSPrintSchemaKeywordMap definiert die Zuordnung von einem PPD-Funktionsschlüsselwort zu einem öffentlichen Druckschema-Funktionsschlüsselwort bzw. eine Zuordnung von einem PPD-Optionsschlüsselwort einer PPD-Funktion zu einem öffentlichen Druckschema-Optionsschlüsselwort einer Druckschema-Funktion.
MSPrintSchemaKeywordMap hat zwei akzeptable Formate:
*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword *<PPD_feature_keyword>
*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword PrintSchema_option_keyword *<PPD_feature_keyword> <PPD_option_keyword>
Das Präfix für das PPD-Schlüsselwort der Funktion (ein Sternchen [*]) ist in beiden Formaten erforderlich.
Für Format 1:
Das PPD-Feature-Schlüsselwort muss sich auf eine PPD-Funktion beziehen, die bereits in einem früheren PPD-Dateiinhalt definiert worden ist.
Mehrere Definitionen von *MSPrintSchemaKeywordMap für dieselbe PPD-Funktion sind nicht zulässig. Wenn mehrere Definitionen gefunden werden, wird nur die erste Definition akzeptiert und andere Definitionen werden ignoriert.
Für Format 2:
Die *MSPrintSchemaKeywordMap-Definition für eine PPD-Funktion (bei Verwendung von Format 1) muss vorhanden sein, bevor eine *MSPrintSchemaKeywordMap-Definition für die Optionen der PPD-Funktion erscheinen kann.
In der *MSPrintSchemaKeywordMap-Definition für eine PPD-Option muss die Zuordnung des Schlüsselworts der PPD-Funktion zum Schlüsselwort der Druckschema-Funktion dieselbe sein wie in der vorherigen *MSPrintSchemaKeywordMap-Definition für die PPD-Funktion (unter Verwendung des Formats 1).
Das PPD-Optionsschlüsselwort muss sich auf eine Option der PPD-Funktion beziehen, die bereits in einem früheren PPD-Dateiinhalt definiert wurde.
Mehrere Definitionen von *MSPrintSchemaKeywordMap für dieselbe PPD-Option einer PPD-Funktion sind nicht zulässig. Wenn mehrere Definitionen gefunden werden, wird nur die erste Definition akzeptiert und andere Definitionen werden ignoriert.
Wenn ein *MSPrintSchemaKeywordMap-Eintrag gegen eine der vorstehenden Formatregeln verstößt, wird dieser Eintrag ignoriert, und Sie erhalten eine ppdchecker-Warnung mit detaillierten Informationen.
*MSPrintSchemaKeywordMap wird für die Verwendung mit den folgenden Standardfunktionen von PPD nicht unterstützt:
*Collate *Duplex *InputSlot *OutputBin *PageSize *Resolution *MediaType Es ist auch wichtig zu wissen, dass, wenn Sie eine Funktion einem Druckschema-Schlüsselwort zuordnen, das bereits in der PPD-Datei verwendet wird, das entsprechende PrintCapabilities-Dokument diese Funktion möglicherweise mehr als einmal aufführt. Ein mehrfaches Vorkommen kann verwirrend sein, daher sollten Sie Funktionen nicht Druckschema-Schlüsselwörtern zuordnen, die in der PPD-Datei verwendet werden.
Der PPD-Parser generiert automatisch die Option FORMSOURCE für die Funktion InputBin und ordnet sie dem Schlüsselwort AutoSelect im Druckschema zu. Wenn Ihre PPD-Datei eine InputBin-Option enthält, die das MSPrintSchemaKeywordMap-Attribut verwendet, um die Option einem Druckschema-Schlüsselwort zuzuordnen, wird die Funktion im Druckschema eine FORMSOURCE-Option im Namespace des Geräts enthalten. AutoSelect erscheint im PrintCapabilities-Dokument und verweist auf die Option, die im MSPrintSchemaKeywordMap-Attribut der PPD-Datei angegeben ist.
Das folgende Code-Beispiel zeigt ein Beispiel für das MSPrintSchemaKeywordMap-Attribut in einer partiellen PPD-Datei.
*OpenUI *IHVStapling:PickOne
*DefaultIHVStapling:Disabled
*IHVStapling Enabled:"..."
*IHVStapling Disabled:"..."
*CloseUI: *IHVStapling
*MSPrintSchemaKeywordMap: Staple*IHVStapling
*MSPrintSchemaKeywordMap: StapleOn*IHVStaplingEnabled
*MSPrintSchemaKeywordMap: StapleOff*IHVStaplingDisabled
Das Attribut MsPrintSchemaPrivateNamespaceURI definiert den privaten Namespace URI, den der Core-Treiber für die Offenlegung privater PPD-Funktionen oder Optionen in PrintTicket oder PrintCapabilities verwenden sollte. Dieser URI wird auf alle Funktionen oder Optionen angewandt, die keine explizite Zuordnung (mit Hilfe der Definition *MSPrintSchemaKeywordMap) zum öffentlichen Druckschema haben.
MSPrintSchemaPrivateNamespaceURI verwendet das folgende Format.
*MSPPrintSchemaPrivateNamespaceURI: "<URI>"
<URI> stellt einen PPD QuotedValue dar. Wie in der PPD-Spezifikation definiert, bietet QuotedValue die Möglichkeit, sowohl echte ASCII-Unterzeichenfolgen als auch hexadezimale Unterzeichenfolgen zu verwenden.
Die PPD-Datei (oder Dateien) eines einzelnen Druckermodells sollte nur eine Definition von *MSPrintSchemaPrivateNamespaceURI enthalten. Wenn mehrere Definitionen gefunden werden, wird nur die erste Definition akzeptiert und die anderen werden ignoriert.
Das folgende Code-Beispiel zeigt ein Beispiel für das Attribut MsPrintSchemaPrivateNamespaceURI in einer partiellen PPD-Datei.
*MSPrivateNamespaceURI: "https://www.ihv.com/schema/2004"
Das Attribut MSIsXPSDriver verwendet das folgende Format.
*MSIsXPSDriver: True | False
Sie können das Windows Vista PScript5-Treiberkonfigurationsmodul (Ps5ui.dll) sowohl für Microsoft Win32 GDI-Treiber als auch für die neuen XPSDrv-Treiber verwenden. Um das PScript5-Treiberkonfigurationsmodul für XPSDrv-Treiber zu verwenden, muss in der PPD-Datendatei des XPSDrv-Treibers MSIsXPSDriver angegeben und der Wert auf TRUE festgelegt werden.
Das folgende Code-Beispiel zeigt ein Beispiel für dieses Attribut in einer partiellen PPD-Datei:
*MSIsXPSDriver: True
Um das PScript5-Treiberkonfigurationsmodul für Win32-GDI-Treiber zu verwenden, müssen Sie dieses PPD-Attribut nicht angeben.
Das Attribut MSPrintProcDuplexOptions verwendet das folgende Format.
*MSPrintProcDuplexOptions: "int"
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
Das folgende Code-Beispiel zeigt ein Beispiel für MSPrintProcDuplexOptions in einer partiellen PPD-Datei.
*MSPrintProcDuplexOptions: "2"
Dieses Attribut steuert verschiedene Duplex-Optionen im Druckprozessor.
Wenn MSPrintProcDuplexOptions 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 Seiten 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 mit Format 1 korrekt arbeitet, müssen Sie für Windows Vista und später nichts ändern. Wenn Ihr Drucker jedoch nicht korrekt mit Format 1 arbeitet und Sie zu Format 2 zurückkehren möchten, fügen Sie das Attribut MSPrintProcDuplexOptions mit dem Wert 1 hinzu.
*MSPrintProcDuplexOptions: "1"
Für den PScript-Treiber vor Windows Vista gilt: Wenn Sie einen Druckprozessor vor Windows Vista haben, ist das Format 2 die Standardeinstellung und Sie können das Verhalten nicht ändern; wenn Sie einen Windows Vista-Druckprozessor haben, ist das Format 1 die Standardeinstellung und Sie können das Verhalten nicht ändern.
Für den Windows Vista PScript-Treiber. wenn Sie einen Druckprozessor vor Windows Vista haben, ist Format 2 die Vorgabe und das PPD-Attribut wird ignoriert; andernfalls, wenn Sie einen Windows Vista Druckprozessor haben, ist Format 1 die Vorgabe, aber Sie können das Format mit dem Attribut MSPrintProcDuplexOptions ändern.
Wenn MSPrintProcDuplexOptions den Wert 2 hat, unterdrückt der Druckprozessor die Generierung von Leerseiten in bestimmten Duplex-Szenarien.
Wenn es sich zum Beispiel um einen einseitigen Auftrag handelt und Duplex eingeschaltet ist (angenommen, n-up = 1), muss nur eine Seite des Blattes gedruckt 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:
Die generierte Seite verursacht eine ungenaue 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 *MSPrintProcDuplexOptions: "2" in der PPD-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 Kopien erstellen kann
Für den PScript-Treiber vor Windows Vista gilt: Wenn Sie einen Druckprozessor vor Windows Vista haben, druckt ein Drucker eine zusätzliche Leerseite, wenn dies für notwendig erachtet wird, und Sie können das Verhalten nicht ändern.
Für den Windows Vista PScript-Treiber. Wenn Sie einen Druckprozessor vor Windows Vista haben, druckt ein Drucker eine zusätzliche Leerseite, wenn dies für notwendig erachtet wird, und das PPD-Attribut wird ignoriert. Wenn Sie einen Windows Vista-Druckprozessor haben und ein entsprechendes PPD-Attribut und die richtigen Bedingungen vorliegen (d. h. die Bedingungen, die weiter oben zur Vermeidung des Drucks von Leerseiten beschrieben wurden), druckt ein Drucker keine Leerseiten.
Das Attribut MSBiDiQueryFile hat das folgende Format.
*MSBidiQueryFile: "filename"
Verwenden Sie MSBiDiQueryFile, um den GPD- oder GDL-Dateinamen anzugeben, der die Autokonfigurationsdaten des Druckertreibers für BidiQuery und BidiResponse enthält. Der GPD- oder GDL-Dateiname sollte keinen Pfad enthalten.
Das folgende Code-Beispiel zeigt ein Beispiel für MSBiDiQueryFile in einer partiellen PPD-Datei.
*MSBidiQueryFile: "ACnfgPS.GDL"
Das Attribut MSXPSMaxCopies verwendet das folgende Format.
*MSXPSMaxCopies: "int"
Verwenden Sie MSXPSMaxCopies, um die maximale Anzahl von Kopien anzugeben, die ein XPSDrv-Druckertreiber unterstützen kann.
Das folgende Code-Beispiel zeigt ein Beispiel für MSXPSMaxCopies in einer partiellen PPD-Datei.
*MSXPSMaxCopies: "99"