Métriques de texte
Pour faciliter la mise en page, la sélection de polices personnalisées et d’autres opérations gourmandes en métriques, à compter de Windows 8, DirectWrite dispose d’un certain nombre de nouvelles API pour exprimer toutes les informations sur les polices dont vous pourriez 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 de empattement, le poids, la proportion, le contraste, le trait, le style de 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 sont similaires. 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 de 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 cadre englobant de glyphe 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 a ou non des métriques typographiques.
Ces informations sont toutes disponibles via la nouvelle méthode GetMetrics sur les interfaces IDWriteFontFace1 et IDWriteFont1 . Cette méthode retourne une structure DWRITE_FONT_METRICS1 qui contient toutes ces informations.
Métriques d’insertion
Pour créer des applications d’édition de texte, vous devez accéder à des informations sur la façon de dessiner le signe 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 de l’insertion le long de la ligne de base.
Ces informations sont particulièrement utiles si vous souhaitez être en mesure d’avoir leur pente de caresse de manière appropriée avec du texte italique.
Détectabilité monospaceée
Les applications qui permettent à vos utilisateurs d’écrire du code informatique utilisent souvent des polices monospaceées à la place des polices plus traditionnelles. Ainsi, vous pouvez avoir plus de contrôle sur la sélection des polices dans les applications liées au développement, DirectWrite indique si une police est monospaceée ou non 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 du 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 du système. Elles ont besoin d’accéder aux noms complets des polices dans plusieurs formats. Ainsi, vous pouvez 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 utiles lorsque vous devez faire correspondre les polices de votre application aux polices appropriées sur le système local.
Avances de glyphes
La méthode GetGlyphAdvances sur les interfaces IDWriteFontFace1 et IDWriteFont1 prend le nombre de glyphes et les index sur lesquels vous avez besoin d’informations avancées, puis retourne les avances pour les glyphes en question.
Plages Unicode
Les applications qui souhaitent gérer leur propre sélection de police doivent accéder aux plages Unicode prises en charge par la police. Ainsi, 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 les interfaces IDWriteFontFace1 et IDWriteFont1 accepte le nombre maximal de plages transmises par le client et retourne les plages réelles prises en charge par la police.
Collection de polices EUDC
Utilisez la méthode GetEudcFontCollection sur l’interface IDWriteFactory1 pour accéder à la collection de polices EUDC. Cette méthode fonctionne de la même façon que GetSystemFontCollection, mais retourne à la place un pointeur vers une collection de polices EUDC.