IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment améliorer les glyphes (UTF-8) dans un richtextbox ou textbox ?


Sujet :

VB.NET

  1. #1
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut Comment améliorer les glyphes (UTF-8) dans un richtextbox ou textbox ?
    Bonjour,
    Le quiz : Comment améliorer les glyphes (UTF-8) dans un richtextbox ou textbox ?
    Rappel du dico : Glyphe (Nom commun) [ɡlif] / Masculin. Représentation graphique en variation d’un signe ou caractère typographique.
    Dans le codage des caractères UTF-8 il y a la possibilité de mettre des glyphes comme l’as de cœur ou le roi d’échec blanc ou le noir.
    Par exemple en tapant la série suivante dans richtextbox :
    ALT + 9812 à 9823 vous visionnerez toutes les pièces d’échecs sur votre richtextbox ou textbox.
    Seul bémol ils ne sont pas très beau par rapport au reste du texte ! Et PIRE il y a un BUG le pion noir apparait plus gros et il est bicolore ! Voir capture1

    Nom : capture1 glyphes.jpg
Affichages : 217
Taille : 10,8 Ko

    Si l’on fait la même chose avec le logiciel Word les caractères sont splendides ! Voir capture2

    Nom : capture2glyphe.jpg
Affichages : 228
Taille : 26,4 Ko

    Vous avez compris ma question comment obtenir dans un richtextbox de beaux glyphes de ces pièces par exemple ?

    Après avoir passé des heures de recherche et notamment quand je tape glyphe dans le moteur de recherche Microsoft :

    https://docs.microsoft.com/en-us/dot...h?view=net-5.0

    je tombe sur des explications alambiqués ! Je suis pourtant très bon en anglais mais là je cale !
    Il semble qu’il est possible d’inclure des glyphes issues d’autres bases (sous réserves ! )
    A mon avis les exemples proposés sont des parties à inclure dans un autre programme car ils ne fonctionnent passeul. Et je n’arrive pas à comprendre à quoi ils servent.

    Dans le lien :
    https://docs.microsoft.com/en-us/dot...e?view=net-5.0
    c’est quoi le BehaviorService » dont ils parlent ?

    C’est pas simple je l’avoue mais j’aimerais bien trouver une solution esthétique.

    Merci pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    727
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 727
    Par défaut
    Bonjour

    La réponse à ta question, pourquoi dans Word c'est joli, est simple... Ce n'est pas la même police de caractères.
    Regarde la police dans Word, utilise la même dans ton RichTextBox, et tu auras le même résultat.

  3. #3
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Effectivement dans Word lorsque l'on tape ALT + 9813 la police change d'office de style est devient MS Gothic !

    Il suffit de remplacer la police dans la richtextbox par MS Gothic ou MS UI Gothic et les pièces apparaissent nickel !

    Merci pour l'observation, cela résout mon problème !

    Bonne soirée.

  4. #4
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Pour ceux qui veulent voir la différence de qualité entre textbox et richtexbox, je vous ai écrit le petit programme test ci-dessous. Le programme remplace certaines lettres de la chaine v par un glyph.

    Ouvrir un form avec un textbox un richtextbox et un bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Public Class Form1
     
        Dim v = "DTFCPAZERTYuiopqsdfbrtdrfcp"
        Dim alpha = v
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            'change la police de caractère et les attributs des carctères
     
            RichTextBox1.Font = New Font("MS UI Gothic", 14)
            TextBox1.Font = New Font("MS UI Gothic", 16)
     
            'change un caractère par une pièce d'échec et l'envoi dans rich text box fonctionne aussi avec un text box 
            v = Replace(v, "r", ChrW(&H265A), 1)
            v = Replace(v, "d", ChrW(&H265B), 1)
            v = Replace(v, "t", ChrW(&H265C), 1)
            v = Replace(v, "f", ChrW(&H265D), 1)
            v = Replace(v, "c", ChrW(&H265E), 1)
            v = Replace(v, "p", ChrW(&H265F), 1)
     
     
            v = Replace(v, "R", ChrW(&H2654), 1)
            v = Replace(v, "D", ChrW(&H2655), 1)
            v = Replace(v, "T", ChrW(&H2656), 1)
            v = Replace(v, "F", ChrW(&H2657), 1)
            v = Replace(v, "C", ChrW(&H2658), 1)
            v = Replace(v, "P", ChrW(&H2659), 1)
     
     
            RichTextBox1.Text = alpha + "           " + v
            TextBox1.Text = alpha + "          " + v + v + "Pi (" & ChrW(&H3A0) & "), and Sigma (" & ChrW(&H3A3) & ")"
     
     
        End Sub
    End Class
    Bonne continuation

  5. #5
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut Bug du glyphe &H265F dans les RichTextBox
    Bonsoir,

    Je revient sur ce sujet car je me suis rendu compte qu'il y a un 'bug' dans Visual Studio en effet le glyphe &H265F n'apparait pas comme un pion noir du jeu d'échecs mais comme un pion bicolore blanc et noir dans les polices comme Arial, MS IU Gothic Century etc... (Sauf dans la police MS Gothic ! ) Le glyphe apparait aussi plus gros => pas terrible

    Nom : Capture d’écran 2021-09-20 221203.jpg
Affichages : 183
Taille : 24,9 Ko

    Le problème MS Gothic n'est pas très esthétique en taille 10 12 ou 14 sauf à atteindre la taille 16 ! C'est très gros.

    Est-il possible de corriger ce seul glyphe défaillant par programme en vb ?

    Avez-vous une autre solution ?

    En vous remerciant pour vos idées

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    L'artillerie lourde sur le site SourceForge sur ce lien :http://fontforge.sourceforge.net/
    Un éditeur de Font qui permet de créer sa propre font TTF(true type) avec ses caractères ouest-europeen et leur associer des glyphes perso(dessin du caractère).
    Les glyphs (dessins) peuvent même etre élaborés sous un logiciel graphique tel que Illustrator et importes au format EPS.
    bon code.

  7. #7
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Merci pour le tuyau je l'avait déjà trouvé avec la mise à jour 2020 et même en démarrant en tant qu'administrateur :

    L'artillerie lourde certes mais FONTFORGE bug énormément ! J'ai Windwos 10 64 pro.

    J'ai pris la version payante de High-Logic fontcreator à 49€ et c'est le Pérou ! Le manuel anglais est très bien documenté. Le grid génial etc.

    Après avoir modifier une police libre et une de windows en .ttf et mis dans C:\windows\fonts je découvre que le logiciel de Richtextbox ne l'utilise pas et s’obstine à utiliser une version autre de font à lui ! En fait il utilise ses propre polices et il impose automatiquement une police par défaut si ça ne correspond pas à sa bibliothèque!

    Faire l'essaie avec MS Gothic sur Word et sur un richtext box => ils ont rien de commun !

    La question est : où Visual Studio stock les polices des TextBox et Richtextbox pour espérer enfin les modifier réellement ?

    Le mode d'emploi de Richtexbox est silencieux sur le sujet.

    En vous remerciant pour votre aide.

  8. #8
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonsoir,

    Ce que j'évoquais au précédent message est confirmé par plusieurs discussions sur la toile. En cherchant du coté des WPF je découvre une class FontFamily qui n'existe pas dans une Richtextbox (FORM) et le commentaire suivant sur le site officiel :

    "Police de secours

    La police de substitution fait référence à la substitution automatique d’une police autre que la police sélectionnée par l’application cliente. Il existe deux raisons principales pour lesquelles la police de secours est appelée :

    La police spécifiée par l’application cliente n’existe pas sur le système.

    La police spécifiée par l’application cliente ne contient pas les glyphes requis pour le rendu du texte.

    En WPF, le mécanisme de substitution de police utilise la famille de polices de secours par défaut, « Global user interface », comme police de substitution. Cette police est définie en tant que police composite, dont le nom de fichier est « GlobalUserInterface. CompositeFont ». Pour plus d’informations sur les polices composites, consultez la section polices composites dans cette rubrique.

    Le mécanisme de police de secours WPF remplace les technologies de substitution de polices Win32 précédentes."


    Donc on a bien le même problème pour une application FORM sauf que Richtextbox est beaucoup moins bien loti !

    N'ayant pas l'intention de tous réécrire en XAML (16000 lignes) quelqu'un as-t'il une idée pour contourner ce seul problème qui me reste pour afficher une belle police avec des glyphes de qualité dans une box ?

    Merci pour vos idées.

  9. #9
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Enfin j'ai trouvé une partie de la solution !

    Avec la police PTSans, le RichTextBox réagit parfaitement et les glyphes sont sympas.

    Pour ceux que cela intéresse je vous donne un code test ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class Form1
     
        Dim SelectTexte As String
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            SelectTexte = "ceci est un test   1.Rb1 Td4 2.Rc2 Dh1 " + ChrW(&H2654) + ChrW(&H2659) + ChrW(&H265F)
     
            RichTextBox1.Text = "ceci est un test   1.Rb1 Td4 2.Rc2 Dh1 " + ChrW(&H2654) + ChrW(&H2659) + ChrW(&H265F)
            RichTextBox1.Select(20, SelectTexte.Length)
            RichTextBox1.SelectionFont = New Font("PTSans", 12, FontStyle.Bold)
            RichTextBox1.SelectionColor = System.Drawing.Color.Red
        End Sub
    End Class
    Plus de pion noir zébré! N'hésitez pas à me donner vos impressions et suggestions svp.

    Par contre une question demeure : Comment utiliser un code glyphe avec un dessin personnel ? Si quelqu'un peut me donner un exemple en utilisant éventuellement le petit programme ci-dessus je suis preneur.
    Par exemple renommer une police PTSans en police XYZ et changer le glyphe &H2654 (un roi blanc) par un autre dessin. Puis faire fonctionner la police XYZ dans un Richtextbox.

    Merci pour votre aide et à bientôt

  10. #10
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    et ne pas oublier de mettre à jour le Framework ! La version 4.8 fonctionne bien, la version 4.56 à des glyphes fantaisistes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2018, 08h26
  2. Réponses: 5
    Dernier message: 01/12/2011, 17h48
  3. Réponses: 2
    Dernier message: 13/06/2006, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo