Gestion des surfaces Device-Managed

Important

Nous vous recommandons d’utiliser le pilote de classe de boîte de réception IPP 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’imprimante.

Pour plus d’informations, consultez le Guide de conception de l’application de support d’impression.

Quand Unidrv restitue des images de page d’impression, il utilise des surfaces de dessin gérées par GDI. Toutes les images sont rendues sous forme de bitmaps. Pour les appareils avec des fonctionnalités qui ne peuvent pas être exploitées par ce scénario, telles que la possibilité de dessiner des vecteurs, vous pouvez fournir une prise en charge de pilote personnalisée pour une surface de dessin gérée par l’appareil. Pour prendre en charge une surface gérée par l’appareil, vous devez fournir un plug-in de rendu qui implémente les éléments suivants :

Les fonctions de raccordement ne peuvent pas rappeler les services de support préfixés de GDI lors du dessin sur une surface gérée par l’appareil. Toutefois, ils peuvent créer une surface bitmap temporaire, puis passer la poignée de cette surface aux fonctions de dessin préfixées eng (voir Rendu d’un travail d’impression).

La méthode IPrintOemUni::D riverDMS est appelée chaque fois qu’un travail d’impression est sur le point d’être rendu, de sorte que le plug-in de rendu peut spécifier le type de surface de rendu (gérée par GDI ou gérée par l’appareil) pour chaque travail. Si vous basez le choix de surface sur une option sélectionnable dans l’interface utilisateur, vous devez également fournir un plug-in d’interface utilisateur.

Dessin de texte sur une surface Device-Managed

Le plug-in de rendu doit raccorder la fonction DrvTextOut d’Unidrv (ainsi que toutes les autres fonctions de dessin DDI graphiques). La création de texte pour une surface gérée par l’appareil implique une interaction entre les quatre fonctions suivantes :

Les étapes impliquées dans l’affichage du texte sur une surface gérée par l’appareil sont les suivantes :

  1. GDI appelle la fonction DrvTextOut d’Unidrv.

  2. Unidrv appelle la fonction de raccordement DrvTextOut du plug-in de rendu.

  3. La fonction de raccordement envoie des commandes à l’appareil pour spécifier le pinceau, la rotation et la zone de découpage du texte.

  4. La fonction de raccordement appelle la méthode IPrintOemDriverUni::D rvUniTextOut d’Unidrv, qui utilise des polices téléchargées pour générer le texte. Cette méthode gère également le découpage basé sur les glyphes.

  5. Si IPrintOemDriverUni::D rvUniTextOut ne peut pas utiliser une police téléchargeable (parce que la police n’est pas disponible ou est pivotée), il appelle la méthode IPrintOemUni::TextOutAsBitmap du plug-in de rendu, qui dessine le texte sous forme de bitmap.

  6. Une fois IPrintOemDriverUni::D rvUniTextOut retourné, la fonction de raccordement DrvTextOut doit dessiner des soulignements et des barrés, en fonction des rectangles spécifiés par le paramètre prclExtra de la fonction DrvTextOut, à l’aide de commandes vectorielles (si pris en charge).