Gestion des polices personnalisée

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.

Pour les imprimantes PCL , Unidrv prend en charge le téléchargement de polices logicielles sous forme de bitmaps ou de contours TrueType. Pour les polices d’appareil, Unidrv prend en charge les formats de commande d’imprimante PCL, CAPSL et PPDS. Pour les autres formats, un code de gestion des polices personnalisé doit être fourni dans un plug-in de rendu. L’ensemble suivant de méthodes IPrintOemUni peut être implémenté :

IPrintOemUni ::D ownloadFontHeader
Permet d’obtenir les informations d’en-tête d’une police réversible à partir d’Unidrv, puis de télécharger les informations sur l’imprimante.

IPrintOemUni ::D ownloadCharGlyph
Permet de télécharger les glyphes de caractères d’une police souple sur l’imprimante.

IPrintOemUni ::OutputCharStr
Utilisé pour contrôler l’impression des caractères.

IPrintOemUni ::SendFontCmd
Permet de modifier la commande de sélection de police d’appareil d’une imprimante et, si nécessaire, de l’envoyer à l’imprimante.

IPrintOemUni ::TextOutAsBitmap
Utilisé pour créer une image bitmap d’une chaîne de texte.

IPrintOemUni ::TTDownloadMethod
Permet de spécifier le format de glyphe que l’unidrv doit utiliser lorsqu’il envoie une police réversible spécifiée à l’imprimante.

Unidrv fournit une fonction de rappel, UNIFONTOBJGetInfo, que les plug-ins de rendu peuvent appeler pour obtenir des informations de police ou de glyphe.

Pour les polices d’appareil, les descriptions des polices doivent être fournies comme expliqué dans la section Fichiers de métriques de police Unidrv et la section Fichiers de table de traduction Glyph .

Pour les polices de cartouche, les descriptions des polices peuvent être fournies dans les DLL de ressources et spécifiées à l’aide d’entrées de cartouches de police dans un fichier GPD . Les descriptions des polices peuvent également être fournies sous la forme de fichiers de format de police Unidrv.

Pour les polices logicielles PCL téléchargeables, les descriptions des polices doivent être fournies comme expliqué dans la section Fichiers de format de police Unidrv .

Fichiers de métriques de police Unidrv

Chaque police d’appareil prise en charge par une imprimante représente un fichier Unidrv Font Metrics (.ufm). Un fichier .ufm est un fichier binaire qui est construit à l’aide des structures décrites dans Structures de métriques de police Unidrv. La première structure d’un fichier .ufm est UNIFM_HDR, qui contient des décalages par rapport aux autres structures du fichier. La figure suivante montre la disposition d’un fichier de métriques de police Unidrv.

diagramme illustrant la disposition d’un fichier de métriques de police unidrv.

Unidrv prend également en charge les fichiers .ifi, les fichiers de métriques de police créés pour Windows NT 4.0.

Fichiers de table de traduction de glyphes

Chaque police d’appareil prise en charge par une imprimante représente un fichier de table de traduction de glyphes (.gtt). Un fichier .gtt est un fichier binaire construit à l’aide des structures décrites dans Unidrv Glyph Translation Table Structures. La première structure d’un fichier .gtt est une structure UNI_GLYPHSETDATA , qui contient des décalages par rapport aux autres structures du fichier.

La figure suivante montre la disposition d’un fichier de table de traduction de glyphes.

diagramme illustrant la disposition d’un fichier de table de traduction de glyphes.

Dans la figure précédente, la structure UNI_GLYPHSETDATA contient les décalages entre le début du fichier et la première structure GLYPHRUN , la première structure UNI_CODEPAGEINFO et la structure MAPTABLE .

Unidrv prend également en charge les fichiers de traduction de glyphes créés pour Windows NT 4.0, qui utilisent la compression d’encodage de longueur d’exécution (RLE) et ont une extension .rle.

Fichiers de format de police Unidrv

Pour les polices de cartouche qui ne sont pas spécifiées à l’aide d’entrées de cartouches de police dans un fichier GPD, les polices doivent être décrites dans un fichier Unidrv Font Format (.uff). En outre, les polices logicielles PCL téléchargeables doivent être spécifiées à l’aide d’un fichier .uff.

Un fichier .uff est un fichier binaire construit à l’aide des ensembles de structures suivants :

La figure suivante montre la disposition d’un fichier Unidrv Font Format.

diagramme illustrant la disposition d’un fichier de format de police unidrv.

Un fichier Unidrv Font Format se compose d’une structure UFF_FILEHEADER et d’une ou plusieurs paires de structure UFF_FONTDIRECTORY et DATA_HEADER . Chaque structure DATA_HEADER est associée à un bloc de données de police. La structure UFF_FILEHEADER contient le décalage entre le début du fichier et la première structure UFF_FONTDIRECTORY . Chaque structure UFF_FONTDRECTORY contient le décalage entre le début du fichier et une structure DATA_HEADER qui contient des données de police.

En outre, pour les polices logicielles PCL téléchargeables, les données binaires à télécharger sont stockées dans un fichier .uff.

La création de fichiers .uff est la responsabilité du logiciel d’installation de police fourni par le fournisseur. Unidrv lit les fichiers .uff d’une imprimante pour obtenir des informations sur les polices et les glyphes. Le programme d’installation de polices doit modifier le contenu du fichier .uff lorsque des polices sont ajoutées ou supprimées. Pour plus d’informations sur la création d’un programme d’installation de polices, consultez Programmes d’installation de polices personnalisés pour Unidrv.

Tous les fichiers .uff doivent être stockés dans le répertoire %SystemRoot%\System32\Spool\Drivers\Unifont. Pour associer des fichiers .uff individuels à des imprimantes spécifiques, le logiciel d’installation doit appeler la fonction SetPrinterData (décrite dans la documentation du SDK Windows) pour créer des valeurs de Registre sous la clé de Registre de chaque imprimante. Le tableau suivant répertorie les noms de valeurs de Registre qui doivent être utilisés et indique le gestionnaire de maintenance de chaque valeur.

Nom et type de la valeur de Registre Définition de valeur Gestionnaire
« ExternalFontFile »

REG_SZ
Nom de fichier d’un fichier .uff qui spécifie les polices installées actuelles. Les polices peuvent être téléchargées ou contenues dans une cartouche. Programme d’installation de polices
« ExtFontCartFile »

REG_SZ
Nom de fichier d’un fichier .uff qui spécifie toutes les polices contenues dans toutes les cartouches de police répertoriées pour « ExtFontCartNames ». Programme d’installation de polices
« ExtFontCartNames »

REG_MULTI_SZ
Noms de toutes les cartouches de police qui pourraient éventuellement être installées sur l’imprimante. Programme d’installation de polices
« FontCart »

REG_MULTI_SZ
Noms de toutes les cartouches de police actuellement installées pour l’imprimante. Unidrv, interface utilisateur

Après avoir ajouté une cartouche de police à une imprimante, l’administrateur système doit exécuter le programme d’installation de polices, qui est chargé de copier les descriptions des polices du fichier .uff spécifié par « ExtFontCartFile » dans le fichier .uff spécifié par « ExternalFontFile ». De même, le programme d’installation de polices doit supprimer les descriptions des polices du fichier .uff spécifié par « ExtFontCartFile » lorsqu’une cartouche est supprimée.