Partager via


Métriques de texte

Pour faciliter la disposition, la sélection de polices personnalisées et d’autres opérations gourmandes en métriques, à partir de Windows 8, DirectWrite dispose d’un certain nombre de nouvelles API pour exprimer toutes les informations sur les polices dont vous pouvez avoir besoin pour développer des applications de texte enrichi.

PANOSE

PANOSE est un système de classification visuelle permettant d’identifier les polices. La classification PANOSE contient des informations sur la famille, le style serif, le poids, la proportion, le contraste, le trait, le style du bras, la hauteur X, etc. Ces informations décrivent le style visuel de la police. Ces informations sont importantes, car les polices avec des valeurs PANOSE similaires ressemblent. Cela est très utile dans les situations où une police n’est pas disponible et que l’application doit revenir à une police disponible. La comparaison des valeurs PANOSE pour les polices vous permet de choisir une police similaire visuellement à la police d’origine.

Pour accéder aux informations PANOSE d’une police, utilisez la méthode GetPanose sur les interfaces IDWriteFont1 et IDWriteFontFace1. Cette méthode retourne une énumération DWRITE_PANOSE qui contient toutes les informations PANOSE pour cette police.

Métriques supplémentaires

À compter de Windows 8, l’API DirectWrite prend également en charge un certain nombre de nouvelles métriques afin d’exprimer des informations utiles sur les polices à votre application. Ces nouvelles métriques incluent ces informations.

  • Métriques de zone englobante gauche, droite, haut et bas.
  • Positionnement X et Y pour les éléments exposants et indices.
  • Informations de mise à l’échelle X et Y pour les éléments exposants et indices.
  • Indique si la police comporte ou non des métriques typographiques.

Ces informations sont toutes disponibles via la nouvelle méthode getMetricssur les interfaces IDWriteFontFace1 et IDWriteFont1. Cette méthode retourne une structure DWRITE_FONT_METRICS1 qui contient toutes ces informations.

Métriques de caret

Pour créer des applications de modification de texte, vous avez besoin d’accéder à des informations sur la façon de dessiner le pointeur qui navigue dans le texte. À compter de Windows 8, DirectWrite fournit la méthode GetCaretMetrics sur les interfaces IDWriteFontFace1 et IDWriteFont1 pour ce scénario. GetCaretMetrics retourne une énumération DWRITE_CARET_METRICS qui contient des informations sur la pente et le décalage du point de base.

Ces informations sont particulièrement utiles si vous souhaitez être en mesure d’avoir leur pente caressée correctement avec du texte italique.

Découverte monospaceée

Les applications qui permettent à vos utilisateurs d’écrire du code informatique utilisent souvent des polices monospaced à la place de polices plus traditionnelles. Vous pouvez donc contrôler davantage la sélection de polices dans les applications liées au développement, DirectWrite exprime si une police est monospaceée via l’API. La méthode IsMonospacedFont sur l’interface IDWriteFontFace1 retourne une valeur booléenne qui indique si la police est monospaced ou non.

Correspondance de nom de police

Les applications de texte enrichi comme les lecteurs PDF doivent être en mesure de faire correspondre les polices de leur contenu aux polices sur le système, doivent accéder aux noms complets des polices dans plusieurs formats. Vous pouvez donc mieux faire correspondre les polices, DirectWrite contient une énumération qui exprime des informations de nommage complètes sur une police dans de nombreux formats.

vous utilisez l’énumération DWRITE_INFORMATIONAL_STRING_ID pour obtenir le nom complet, le nom PostScript et le nom CID PostScript de n’importe quelle police sur le système. Ces informations sont précieuses lorsque vous devez faire correspondre les polices de votre application aux polices appropriées sur le système local.

Avances de glyphe

La méthode GetGlyphAdvances sur la IDWriteFontFace1 et IDWriteFont1 interfaces prend le nombre de glyphes et les index dont vous avez besoin pour avancer, puis retourne les avancées pour les glyphes en question.

Plages Unicode

Les applications qui souhaitent gérer leur propre sélection de polices doivent accéder aux plages Unicode prises en charge par la police. De cette façon, si un point de code Unicode n’est pas pris en charge par la police, l’application peut choisir une police appropriée qui contient ce glyphe. Sans ces informations, l’application peut utiliser une police qui ne contient pas tous les glyphes nécessaires pour afficher les informations présentes.

La méthode GetUnicodeRanges sur la IDWriteFontFace1 et interfaces IDWriteFont 1 prend le nombre maximal de plages passées à partir du client et retourne les plages réelles prises en charge par la police.

EUDC Font Collection

Utilisez la méthode GetEudcFontCollection sur l’interface IDWriteFactory1 accéder à la collection de polices EUDC. Cette méthode fonctionne de la même façon que GetSystemFontCollection, mais retourne plutôt un pointeur vers une collection de polices EUDC.