Partager via


Polices incorporées

L’incorporation d’une police est la technique de regroupement d’un document et des polices qu’elle contient dans un fichier pour la transmission vers un autre ordinateur. L’incorporation d’une police garantit qu’une police spécifiée dans un fichier transmis sera présente sur l’ordinateur qui reçoit le fichier. Toutefois, toutes les polices ne peuvent pas être déplacées de l’ordinateur à l’ordinateur, car la plupart des polices sont concédées sous licence à un seul ordinateur à la fois. Seules les polices TrueType et OpenType peuvent être incorporées.

Les applications doivent incorporer une police dans un document uniquement lorsqu’elles sont demandées par un utilisateur. Une application ne peut pas être distribuée avec des documents qui contiennent des polices incorporées, ni une application elle-même ne peut pas contenir une police incorporée. Chaque fois qu’une application distribue une police, dans n’importe quel format, les droits propriétaires du propriétaire de la police doivent être reconnus.

Il peut s’agir d’une violation des droits propriétaires d’un fournisseur de polices ou d’un contrat de licence utilisateur pour incorporer toutes les polices où l’incorporation n’est pas autorisée ou ne pas respecter les instructions suivantes sur l’incorporation de polices. La licence d’une police peut autoriser uniquement l’installation et l’utilisation d’une police sur l’ordinateur de destination. Ou la licence peut accorder une autorisation en lecture seule. L’autorisation en lecture seule autorise l’affichage et l’impression d’un document (mais pas modifié) par l’ordinateur de destination ; les documents avec des polices incorporées en lecture seule sont eux-mêmes en lecture seule. Les polices incorporées en lecture seule peuvent ne pas être dégroupées à partir du document et installées sur l’ordinateur de destination.

Une application peut déterminer l’état de la licence en appelant la fonction GetOutlineTextMetrics et en examinant le membre otmfsType de la structureOUTLINETEXTMETRIC. Si le bit 1 de otmfsType est défini, l’incorporation n’est pas autorisée pour la police. Si le bit 1 est clair, la police peut être incorporée. Si le bit 2 est défini, l’incorporation est en lecture seule.

Pour incorporer une police TrueType, une application peut utiliser la fonction GetFontData pour lire le fichier de police. La définition des paramètres dwTable et dwOffset des paramètres de GetFontData sur 0L et le paramètre cbData sur 1L garantit que l’application lit l’intégralité du fichier de police à partir du début.

Plusieurs fonctions sont disponibles pour incorporer des polices OpenType en fonction de la largeur des caractères et de l’emplacement où résident les données de police. Pour incorporer une police Unicode OpenType qui réside dans un contexte d’appareil, une application peut utiliser TTEmbedFont. Pour incorporer une police OpenType UCS-4 qui réside dans un contexte d’appareil, une application peut utiliser TTEmbedFontEx. Pour incorporer une police Unicode OpenType qui réside dans un fichier de police, une application peut utiliser TTEmbedFontFromFile. Pour plus d’informations sur l’incorporation de polices OpenType, consultez la informations de référence sur l’incorporation de polices.

Une fois qu’une application récupère les données de police, elle peut stocker les données avec le document à l’aide de n’importe quel format applicable. La plupart des applications créent un répertoire de polices dans le document, répertorient les polices incorporées et indiquent si l’incorporation est en lecture/écriture ou en lecture seule. Une application peut utiliser les otmpStyleName et otmFamilyName membres de la structureOUTLINETEXTMETRICpour identifier la police.

Si le bit en lecture seule est défini pour la police incorporée, les applications doivent chiffrer les données de police avant de les stocker avec le document. La méthode de chiffrement n’a pas besoin d’être compliquée ; par exemple, l’utilisation de l’opérateur XOR pour combiner les données de police avec une constante définie par l’application est adéquate et rapide.