Nouveaux attributs GPD réservés à la racine pour Windows Vista
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
La liste suivante décrit les attributs GPD qui sont nouveaux à partir de Windows Vista. Pour maintenir la compatibilité avec les versions de Windows antérieures à Windows Vista, vous devez entourer ces attributs avec le code suivant.
*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks
PrintProcDuplexOptions
L’attribut PrintProcDuplexOptions contrôle diverses options de duplex dans un processeur d’impression. Cet attribut peut avoir l’une des valeurs suivantes :
1 : Inverser les pages pour le recto verso inversé
2 : Supprimer la génération de pages blanches supplémentaires si possible
3 : Les deux ci-dessus
0 : Aucun des éléments ci-dessus
Si PrintProcDuplexOptions est égal à 1, il contrôle si le processeur d’impression doit inverser les pages en mode duplex inversé.
Supposons que vous deviez imprimer un document de quatre pages avec n-up = 1, et que vous souhaitiez utiliser l’impression inversée et l’impression recto verso. Comme vous voulez l’impression inversée, vous souhaitez imprimer la dernière page avant la première page. Comme vous souhaitez l’impression recto verso, vous souhaitez imprimer deux pages sur une seule feuille de papier. Le processeur d’impression peut lire les pages dans l’un des deux formats suivants (où chaque paire de chiffres indique les deux pages qui seraient imprimées sur les deux côtés d’une seule feuille de papier) :
Format 1 : (4,3),(2,1)
Format 2 : (3,4),(1,2)
Avant Windows Vista, un processeur d’impression imprimait dans l’ordre au format 2 [(3,4),(1,2)]. Mais dans Windows Vista et versions ultérieures, le format par défaut est le format 1 [(4,3),(2,1)]. Ce changement a eu lieu car de nombreuses imprimantes ont une sortie incorrecte avec le format 2 ; c’est-à-dire que les pages imprimées ne sont pas ordonnées correctement.
Mais si votre imprimante fonctionne correctement avec le format 1, vous n’aurez rien à changer pour Windows Vista et les versions ultérieures. Cependant, si votre imprimante fonctionne incorrectement avec le format 1 et que vous souhaitez revenir au format 2, ajoutez l’exemple de code suivant à votre fichier GPD.
*Ifdef: WINNT_60
*PrintProcDuplexOptions: 1
*Endif: WINNT_60
Le format 1 peut mieux fonctionner dans certaines orientations ou certaines combinaisons de bacs d’entrée et de sortie, et le format 2 peut mieux fonctionner dans d’autres combinaisons. Par conséquent, vous pouvez placer l’attribut PrintProcDuplexOptions dans une construction switch/case.
Pour un pilote Unidrv pré-Windows Vista, si vous avez un processeur d’impression pré-Windows Vista, le format 2 est le format par défaut, et vous ne pouvez pas changer le format ; sinon, si vous avez un processeur d’impression Windows Vista, le format 1 est le format par défaut, et vous ne pouvez pas changer le format.
Pour le pilote Unidrv de Windows Vista, si vous avez un processeur d’impression pré-Windows Vista, le format 2 est le format par défaut, et l’attribut GPD sera ignoré ; sinon, si vous avez un processeur d’impression Windows Vista, le format 1 est le format par défaut, mais vous pouvez changer le format en utilisant l’attribut PrintProcDuplexOptions.
Si PrintProcDuplexOptions est égal à 2, il empêche la génération de pages blanches dans certains scénarios de duplex.
Cet attribut contrôle si vous devez envoyer des pages blanches supplémentaires à l’imprimante lorsque vous effectuez une impression en mode duplex. Par exemple, si le travail est un travail d’une page et que le duplex est activé (supposons n-up = 1), seule une face de la feuille doit être imprimée. Actuellement, les imprimantes imprimeront une face puis généreront une page blanche vide sur le côté opposé. (Comme le travail d’impression a été lancé avec duplex=activé, l’imprimante s’attend à deux pages avant d’éjecter la feuille. Si la seconde page ne s’imprime pas, certaines imprimantes continuent d’attendre.) Les inconvénients de la solution actuelle sont que :
La page générée provoque un comptage de pages inexact dans le logiciel de comptabilité et le compteur de pages des imprimantes.
Lorsque la page sort à moitié de l’imprimante (dans certaines imprimantes de style Hewlett Packard DeskJet), l’utilisateur pourrait essayer de la tirer alors que l’imprimante essaie de la rétracter. Cette situation peut causer des problèmes matériels.
Vous pouvez éviter les problèmes précédents en spécifiant *PrintProcDuplexOptions : 2 dans le fichier GPD.
Notez que même si cet attribut est défini, l’optimisation des pages blanches n’est effectuée que dans les cas limités suivants :
Pour l’impression inversée, l’optimisation des pages blanches n’est effectuée que lorsque l’intégralité du travail peut tenir sur une seule face du papier (par exemple, un travail d’une page avec n-up=1 ou un travail de quatre pages avec n-up=4). Si le travail nécessite plus d’une feuille, l’optimisation n’est pas effectuée (car les pages de l’imprimante seront imprimées dans un ordre inexact). Par exemple, pour un travail de trois pages, les pages peuvent être imprimées dans l’ordre 3,2,1,<blanche> au lieu de 4,3,2,<blanche>.
L’optimisation des pages blanches n’est pas effectuée si le processeur d’impression doit simuler des copies. Le processeur d’impression simule les copies si le nombre de copies nécessaire dépasse le nombre de copies que le processeur d’impression peut produire.
La situation suivante est un exemple de moment où la simulation se produit et où des pages blanches sont générées (si nécessaire) :
- Deux copies pour une imprimante qui ne peut pas faire de copies
Les situations suivantes sont des exemples où la simulation ne se produit pas et où vous pouvez supprimer la génération de pages supplémentaires :
- Travail à copie unique pour une imprimante qui ne peut pas faire de copies
- Travail de cinq copies pour une imprimante capable de faire plus d’une copie
Utilisation de PrintProcDuplexOptions
*Ifdef: WINNT_60
*PrintProcDuplexOptions: 2
*Endif: WINNT_60
Dans certains cas, l’impression de pages supplémentaires peut ne pas vous déranger, tandis que dans d’autres cas, oui. Par conséquent, vous pouvez placer l’attribut PrintProcDuplexOptions dans une construction switch/case.
Pour un pilote Unidrv pré-Windows Vista, si vous avez un processeur d’impression pré-Windows Vista, une imprimante imprimera une page blanche supplémentaire, si nécessaire, et vous ne pouvez pas modifier ce comportement ; sinon, si vous avez un processeur d’impression Windows Vista, une imprimante imprimera une page blanche supplémentaire, si nécessaire, et vous ne pouvez pas modifier ce comportement.
Pour le pilote Unidrv de Windows Vista, si vous avez un processeur d’impression pré-Windows Vista, une imprimante imprimera une page blanche supplémentaire, si nécessaire, et l’attribut GPD sera ignoré ; sinon, si vous avez un processeur d’impression Windows Vista, et si l’attribut GPD approprié et les conditions requises sont présents (c’est-à-dire les conditions décrites précédemment pour empêcher l’impression de pages blanches), une imprimante n’imprimera pas de pages blanches.
PreAnalysisOptions
L’attribut PreAnalysisOptions peut avoir l’une des valeurs suivantes :
0 : Désactiver tous les modes de pré-analyse.
1 : Mode par défaut. Active l’analyse de texte monochrome par ordre z et l’optimisation des bandes vides. Ce mode est activé pour les appareils avec une police téléchargeable ou une prise en charge des polices de l’appareil et une haute résolution (600 dpi ou plus), modes de rendu 24 bpp.
2 : Activer l’optimisation 1 bpp pour les fonctions de rappel de traitement d’image 24 bpp.
4 : Activer la prise en charge de StretchBlt de l’appareil.
8 : Activer le mode de pré-analyse du fournisseur.
16 : Activer le mode de débogage pour 1 bpp où la bande est convertie en 24 bpp avant d’appeler la fonction de rappel de traitement d’image.
UseBMPFontCompression?
L’attribut UseBMPFontCompression? contrôle si Unidrv doit compresser les données lorsque les polices sont téléchargées sous forme de bitmap. La valeur par défaut de UseBMPFontCompression? est FALSE, ce qui signifie qu’Unidrv ne compressera pas si cet attribut n’est pas présent dans le fichier GPD. Cette valeur par défaut maintient la compatibilité avec les anciennes versions d’Unidrv qui n’avaient pas la fonctionnalité de compression des polices bitmap. Vous ne devez définir cet attribut sur TRUE que si votre imprimante prend en charge la compression des polices bitmapLes données de caractères bitmap compressées sont au format compression longueur de ligne répétitive.
UseMode5Compression?
L’attribut UseMode5Compression? contrôle si UniDrv doit utiliser la compression Mode 5. La compression Mode 5 (ou Méthode 5) est une compression adaptative qui permet l’utilisation combinée de plusieurs autres méthodes de compression (telles que non encodée, TIFF ou Delta-Row). La valeur par défaut de UseMode5Compression? est FALSE, ce qui signifie qu’Unidrv ne réalisera pas de compression adaptative si cet attribut n’est pas présent dans le GPD. Cette valeur par défaut maintient la compatibilité avec les anciennes versions d’Unidrv qui n’avaient pas la fonctionnalité de compression adaptative. Vous devez définir cette valeur sur TRUE uniquement si votre imprimante prend en charge la compression adaptative.
UseHPGLPolylineEncoding?
L’attribut UseHPGLPolylineEncoding? contrôle si Unidrv doit utiliser l’encodage polyligne. HP-GL/2 prend en charge les commandes Lever du stylo / Abaisser le stylo / Dessiner absolu / Dessiner relatif pour dessiner des vecteurs. La commande encodée polyligne (PE) est une manière plus efficace de représenter les vecteurs.
La valeur par défaut de UseHPGLPolylineEncoding? est FALSE, ce qui signifie qu’Unidrv n’utilisera pas la commande PE si cet attribut n’est pas présent dans GPD. Cette valeur par défaut maintient la compatibilité avec les anciennes versions d’Unidrv qui ne prenaient pas en charge la commande PE. Vous devez définir cette valeur sur TRUE uniquement si votre imprimante prend en charge l’encodage polyligne.
PrintSchemaPrivateNamespaceURI
L’attribut PrintSchemaPrivateNamespaceURI définit l’URI de l’espace de noms privé que le pilote principal doit utiliser pour exposer les fonctionnalités ou options PPD privées dans PrintTicket ou PrintCapabilities. L’attribut doit apparaître dans la racine du document GPD et contenir une représentation ASCII d’un URI qui sera utilisé pour définir un espace de noms dans les documents PrintTickets et PrintCapabilities. Cet URI sera, à son tour, associé à toutes les fonctionnalités et options qui n’ont pas de mappage explicite dans le schéma public, ou que le pilote principal ne reconnaît pas.
PrintSchemaKeywordMap
L’attribut PrintSchemaKeywordMap apparaît sous les constructions de fonctionnalités et d’options dans le fichier GPD. Cet attribut indique quel nom de schéma d’impression public vous devez utiliser avec les fonctionnalités définies par l’imprimante. Vous pouvez renommer toute option spécifiée dans un fichier GPD, à l’exception de Duplex et Collate, dans le PrintTicket en utilisant l’attribut PrintSchemaKeywordMap.
Le parseur GPD ignore cet attribut pour les fonctionnalités qui sont explicitement reconnues, y compris la taille de la page et la couleur.
Toutes les valeurs doivent être entre guillemets. Elles seront converties en Unicode en utilisant la page de code spécifiée dans le GPD, si disponible. Les définitions en double de tout attribut sont résolues de la même manière que les autres attributs GPD : la dernière définition lue a la priorité.
Si vous mappez une fonctionnalité à un mot-clé de schéma d’impression déjà utilisé dans le fichier GPD, le document PrintCapabilities correspondant peut lister cette fonctionnalité plus d’une fois. Les occurrences multiples peuvent prêter à confusion, il est donc déconseillé de mapper des fonctionnalités à des mots-clés de schéma d’impression utilisés dans le fichier GPD.
Le parseur GPD génère automatiquement l’option FORMSOURCE pour la fonctionnalité InputBin et la mappe au mot-clé AutoSelect dans le schéma d’impression. Si votre fichier GPD contient une option InputBin qui utilise l’attribut PrintSchemaKeywordMap pour mapper l’option à un mot-clé de schéma d’impression, la fonctionnalité dans le schéma d’impression contiendra une option FORMSOURCE dans l’espace de noms de l’appareil. AutoSelect apparaîtra dans le document PrintCapabilities et se référera à l’option spécifiée dans l’attribut PrintSchemaKeywordMap du fichier GPD.
L’exemple de code suivant montre un fichier GPD partiel pour illustrer la disposition.
*Feature: HPSTAPLER
{
*Name: "Staple"
*DefaultOption: Off
* PrintSchemaKeywordMap: "Staple"
*Option: Off
{
*Name: "Off"
* PrintSchemaKeywordMap: "Off"
}
*Option: On
{
*Name: "On"
* PrintSchemaKeywordMap: "On"
}
}
IsXPSDriver
L’attribut IsXPSDriver utilise la syntaxe GPD suivante.
*IsXPSDriver?: TRUE | FALSE
Vous pouvez utiliser le module de configuration Unidrv de Windows Vista (Unidrvui.dll) pour les pilotes GDI Win32 de Microsoft ainsi que les nouveaux pilotes XPSDrv. Pour utiliser le module de configuration Unidrv pour les pilotes XPSDrv, le fichier de données GPD du pilote XPSDrv doit spécifier l’attribut IsXPSDriver et définir sa valeur sur TRUE.
Par exemple, si vous avez un pilote XPS, utilisez le code suivant.
*IsXPSDriver?: TRUE
Pour utiliser le module de configuration Unidrv pour les pilotes GDI Win32, vous n’avez pas besoin de spécifier cet attribut.
UseImageForHatchBrush?
L’attribut UseImageForHatchBrush? utilise la syntaxe GPD suivante.
*Ifdef: WINNT_60
*UseImageForHatchBrush?: TRUE
*Endif: WINNT_60
Dans Microsoft Windows Server 2003 ou Windows XP, lorsque Unidrv imprime en mode HP-GL/2, si une brosse de hachure est reçue dans la fonction DrvRealizeBrush, Unidrv envoie une commande pour que l’imprimante sélectionne la brosse de hachure appropriée. Unidrv ne contrôle pas comment la brosse de hachure est rendue. Par exemple, l’espacement entre les lignes est généralement contrôlé par la résolution. À résolution plus élevée, l’espacement devient plus petit, tandis qu’à résolution plus basse, l’espacement serait plus grand. Par conséquent, un document pourrait s’imprimer différemment si une résolution différente est utilisée.
Dans Windows Vista, si le GPD spécifie l’attribut UseImageForHatchBrush?, Unidrv rend la brosse de hachure sur une surface bitmap puis envoie ce bitmap à l’appareil. Unidrv a donc un certain contrôle sur la façon dont la brosse de hachure est rendue.
ReverseBandOrder?
L’attribut ReverseBandOrder? utilise la syntaxe GPD suivante.
*Ifdef: WINNT_60
*ReverseBandOrder?: TRUE
*Endif: WINNT_60
La valeur de ReverseBandOrder? est TRUE ou FALSE pour indiquer si l’ordre de banding inversé est activé. Cet attribut provoque un banding dans l’ordre inverse. Par exemple, pour une page en orientation portrait, le banding se fait de bas en haut au lieu de haut en bas.
Cet attribut est essentiellement le même que ReverseBandOrderForEvenPages?, sauf que ReverseBandOrder? est pris en compte même si le duplex n’est pas actif (ReverseBandOrderForEvenPages? ne fonctionne que si le duplex est activé), et il fonctionne pour toutes les pages (ReverseBandOrderForEvenPages? fonctionne uniquement sur les pages paires). Pour plus de détails sur l’utilisation de ReverseBandOrder? et autres informations connexes, voir *ReverseBandOrderForEvenPages?. Notez en particulier que les plug-ins doivent inverser les lignes de scan et les bits dans la ligne de scan.
Vous pouvez utiliser une combinaison de *ReverseBandOrderForEvenPages? et *ReverseBandOrder?.
Lorsque seul ReverseBandOrder? est défini sur TRUE, le banding sera inversé pour toutes les pages.
Lorsque seul ReverseBandOrderForEvenPages? est défini sur TRUE, le banding sera inversé pour les pages paires uniquement si l’imprimante imprime en duplex. Si le duplex n’est pas activé, le paramètre ReverseBandOrderForEvenPages? est ignoré.
Lorsque ReverseBandOrder? et ReverseBandOrderForEvenPages? sont tous deux activés, les actions suivantes se produisent :
Si le duplex est activé, le banding inversé est effectué pour les pages impaires (c’est-à-dire 1, 3, 5, 7, etc.).
Si le duplex est désactivé, le banding inversé est effectué pour toutes les pages.
BidiQueryFile
L’attribut BidiQueryFile utilise la syntaxe GPD suivante.
*BidiQueryFile: <GPD or GDL file name>
Utilisez BidiQueryFile pour spécifier le nom du fichier GPD ou GDL qui contient les données BidiQuery ou BidiResponse de la configuration automatique du pilote d’imprimante. Le nom du fichier GPD ou GDL ne doit pas spécifier de chemin d’accès. Si les données de configuration automatique sont contenues dans le fichier GPD DataFile du pilote, vous pouvez également spécifier ce fichier GPD comme valeur de l’attribut BidiQueryFile.
L’exemple de code suivant montre un exemple de cet attribut dans un fichier GPD partiel.
*Ifdef: WINNT_60
*BidiQueryFile: "ACnfgUni.GDL"
*Endif: WINNT_60