Gestion personnalisée des polices

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 les articles Plateforme d’impression moderne et Guide de conception des applications 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 de périphérique, Unidrv prend en charge les formats de commande d’imprimante PCL, CAPSL et PPDS. Pour les autres formats, le code de gestion personnalisée des polices doit être fourni dans un plug-in de rendu. L’ensemble suivant de méthodes IPrintOemUni peut être implémenté :

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

IPrintOemUni::DownloadCharGlyph
Permet de télécharger les glyphes d’une police logicielle sur l’imprimante.

IPrintOemUni::OutputCharStr
Permet de contrôler l’impression des caractères.

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

IPrintOemUni::TextOutAsBitmap
Permet de 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 logicielle 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 de périphérique, les descriptions de police doivent être fournies comme expliqué dans les sections Fichiers Unidrv Font Metrics et Fichiers Glyph Translation Table.

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

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

Fichiers Unidrv Font Metrics

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

diagramme illustrant la disposition d’un fichier Unidrv Font Metrics.

Unidrv prend également en charge les fichiers .ifi, les fichiers Font Metrics créés pour Windows NT 4.0.

Fichiers Glyph Translation Table

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

La figure suivante illustre la disposition d’un fichier Glyph Translation Table.

diagramme illustrant la disposition d’un fichier Glyph Translation Table.

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

Unidrv prend également en charge les fichiers Glyph Translation créés pour Windows NT 4.0, qui utilisent la compression run-length encoding (RLE) et ont une extension .rle.

Fichiers Unidrv Font Format

Pour les polices de cartouche qui ne sont pas spécifiées à l’aide d’entrées font cartridges 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 illustre la disposition d’un fichier Unidrv Font Format.

diagramme illustrant la disposition d’un fichier Unidrv Font Format.

Un fichier Unidrv Font Format se compose d’une structure UFF_FILEHEADER et d’une ou plusieurs paires de structures 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 du début du fichier à la première structure UFF_FONTDIRECTORY. Chaque structure UFF_FONTDRECTORY contient le décalage du début du fichier à 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 de police et de glyphe. Le programme d’installation de police 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 police, consultez Installateurs 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 Kit de développement logiciel (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 chaque valeur.

Nom et type de valeur de registre Définition des valeurs Gestionnaire
« ExternalFontFile »

REG_SZ
Nom de fichier d’un fichier .uff qui spécifie les polices installées actuellement. Les polices peuvent être téléchargeables ou contenues dans une cartouche. Programme d’installation de police
« 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 police
« ExtFontCartNames »

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

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

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 de police à partir du fichier .uff spécifié par « ExtFontCartFile » dans le fichier .uff spécifié par « ExternalFontFile ». De même, le programme d’installation de police doit supprimer les descriptions de police du fichier .uff spécifié par « ExtFontCartFile » lorsqu’une cartouche est supprimée.