Traitement des scripts complexes
Voici des options pour l’affichage et le traitement connexe du texte afin de prendre en charge des effets typographiques fins ou des scripts complexes :
- Fonctions de texte
- Modifier les contrôles
- Contrôles d’édition enrichis
- Annuler l’inscription
Les options que vous choisissez dépendent des facteurs suivants :
- Type de texte ou de scripts.
- Le modèle d’implémentation, par exemple, la disposition du texte et la gestion des sauts de ligne par l’application.
- Mise à jour d’une application existante par opposition à la création d’une nouvelle application.
En général, une application qui effectue un traitement de script relativement simple peut choisir n’importe quelle option de traitement de scripts complexes. Toutefois, pour le contrôle le plus complet du traitement des scripts complexes, Uniscribe est recommandé.
Traitement de script complexe à l’aide de fonctions de texte
Les applications qui utilisent principalement du texte brut, c’est-à-dire du texte qui utilise la même police, le même poids, la même couleur, etc., ont traditionnellement du texte écrit et des longueurs de ligne mesurées à l’aide de fonctions de texte standard, telles que TextOut, ExtTextOut, TabbedTextOut, DrawText et GetTextExtentExPoint. Ces fonctions prennent en charge le traitement des scripts complexes et des effets typographiques fins. Pour plus d’informations, consultez Polices et texte.
En général, la prise en charge du texte standard est transparente pour les applications qui traitent des scripts complexes. Toutefois, vous devez connaître certaines règles spécifiques à suivre lors de l’écriture d’applications qui prennent en charge la typographie fine et traitent des scripts complexes :
- Votre application doit enregistrer des caractères dans une mémoire tampon et afficher une ligne de texte entière à la fois au lieu, par exemple, d’appeler ExtTextOut sur chaque caractère tel qu’il est tapé par l’utilisateur. Ce mécanisme permet aux modules de mise en forme de texte avancés d’utiliser le contexte pour réorganiser et générer correctement des glyphes .
- L’application doit utiliser GetTextExtentExPoint pour déterminer la longueur des lignes, au lieu de calculer les longueurs de ligne à partir des largeurs de caractères mises en cache, car la largeur d’un glyphe peut varier selon le contexte.
- L’application doit éventuellement ajouter la prise en charge de l’ordre de lecture de droite à gauche et de l’alignement à droite.
- La réorganisation et le traitement contextuel requis pour les scripts complexes ou la typographie fine nécessitent une augmentation significative du traitement par rapport à l’affichage de texte de base pour les scripts simples. Par conséquent, pour éviter les problèmes de performances, votre application ne doit pas traiter de grandes quantités de texte avant d’afficher les résultats et de renvoyer le contrôle à l’utilisateur.
Traitement de script complexe à l’aide de contrôles d’édition
Les contrôles d’édition Windows standard ont été étendus pour prendre en charge le texte multilingue et les scripts complexes. La prise en charge étendue inclut l’entrée et l’affichage, ainsi que le déplacement correct du curseur sur les clusters de caractères, par exemple, dans les scripts thaï et devanagari. Pour plus d’informations, consultez Modifier les contrôles.
Traitement de script complexe à l’aide de contrôles d’édition enrichis
Rich Edit 3.0 est une collection d’interfaces de niveau supérieur qui tire parti de Uniscribe pour isoler les applications de disposition de texte des complexités de certains scripts. L’édition enrichie est le moyen le plus simple pour les applications d’afficher des scripts complexes, même si leur objectif principal n’est pas nécessairement la mise en page du texte. Rich Edit fournit une édition rapide et polyvalente de texte multilingue Unicode riche et de texte brut simple. Il inclut des interfaces com et de messages étendus, l’édition de texte, la mise en forme, le saut de ligne, la disposition de tableau simple, la disposition de texte verticale, la disposition de texte bidirectionnelle, la prise en charge de l’indic et du thaïlandais, une interface utilisateur de modification semblable à Microsoft Word et des interfaces de modèle objet texte.
Avec les interfaces Rich Edit, les applications peuvent utiliser la fonction Rich Edit TextOut pour analyser, mettre en forme, positionner et arrêter automatiquement les lignes. Pour plus d’informations, consultez Contrôles d’édition enrichis.
Traitement de script complexe à l’aide de l’inscription unicrite
Uniscribe fournit la prise en charge la plus étendue du traitement de texte impliquant des effets typographiques fins et des scripts complexes. Il prend en charge les règles complexes trouvées dans les scripts tels que l’arabe, le devanagari et le thaï. Il gère les scripts écrits de droite à gauche, tels que l’arabe et l’hébreu, et prend en charge le mélange de scripts. Uniscribe expose également les fonctionnalités de police OpenType qui peuvent être utilisées par les applications pour contrôler les effets de typographie fine. Pour plus d’informations, consultez Traitement des scripts complexes.
Rubriques connexes