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

C# Discussion :

Ma Font n'est pas prise en charge dans ma richTextBox [Débutant]


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Ma Font n'est pas prise en charge dans ma richTextBox
    Bonjour à tous,

    J'ai un soucis avec le changement de ma police et la taille de celle-ci.

    J'utilise 2 comboBox pour faire cela, une pour la police et une pour la taille.

    Mon problème est que la police et la taille change bien dans ma richTextBox mais quand je test en m'envoyant un mail(j'essaye de développer un mailer), le texte apparait toujours en brut.

    Je joins ici mon code actuel:

    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
      private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                foreach (FontFamily font in FontFamily.Families)
                {
                    comboBox1.Items.Add(font.Name.ToString());
     
                }
     
            }
     
     
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                richTextBox1.Font = new Font(comboBox1.Text, richTextBox1.Font.Size);
     
            }
     
     
            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                richTextBox1.Font = new Font(richTextBox1.Font.FontFamily, float.Parse(comboBox2.SelectedItem.ToString()));
            }
    Pourriez vous me préciser ou se trouve mon erreur s'il vous plait?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 680
    Points : 5 266
    Points
    5 266
    Par défaut
    Tu parles d'un problème de texte en brut dans un mail.
    Mais tu montre du code qui n'a rien à voir avec ton problème

    Juste au cas où parce qu'à mon avis ton problème est là :
    Pour envoyer un mail avec du texte avec une fonte particulière (couleur, décoration, etc..), il faut passer par un body en HTML.

  3. #3
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse Popo.
    Je t'avoue que je suis un peu perdu là, je dois donc dans mon comboBox définir le bodyHtml avec quelque chose comme cela stp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BodyBuilder builder = new BodyBuilder();
    builder.HtmlBody = richTextBox1.Text;
    richTextBox1.Font = new Font(comboBox1.Text, richTextBox1.Font.Size);
    Est ce que je me rapproche stp?
    Merci

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 680
    Points : 5 266
    Points
    5 266
    Par défaut
    Tu es perdu parce que tu continues à penser que ton problème via de la combo.
    Or le problème est que tu fournis du texte brut à ton mail.

    richTextBox1.Text renvoie du texte brut.
    Utiliser HtmlBody (je suppose que tu utilise MimeKit) est mieux mais ce la ne sert à rien si tu y mets du texte brut.

    Le texte formatté dans le richtextbox est dans la propriété RTF de ce dernier.
    Il faut donc transformer ce RTF en HTML puis le mettre dans le mail.

  5. #5
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par popo Voir le message
    Tu es perdu parce que tu continues à penser que ton problème via de la combo.
    Or le problème est que tu fournis du texte brut à ton mail.

    richTextBox1.Text renvoie du texte brut.
    Utiliser HtmlBody (je suppose que tu utilise MimeKit) est mieux mais ce la ne sert à rien si tu y mets du texte brut.

    Le texte formatté dans le richtextbox est dans la propriété RTF de ce dernier.
    Il faut donc transformer ce RTF en HTML puis le mettre dans le mail.
    D'accord, oui, ma logique est mauvaise, merci Popo pour tes précisions, je comprend beaucoups mieux maintenant.

    Oui, effectivement j'utilise MimeKit pour faire cela.

    Je vais donc dans un premier temps changer le RTF en HTML et ensuite passer cela à ma class BodyBuilder pour l'envoyer dans le mail.

    Je laisse encore la discussion ouverte, juste le temps de faire cela... merci encore

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 680
    Points : 5 266
    Points
    5 266
    Par défaut
    Je n'ai pas essayé mais d'après ce que j'ai compris en lisant la documentation de MemeKit, tu devrais pouvoir faire un message en fournissant directement le RTF

    http://www.mimekit.net/docs/html/Creating-Messages.htm
    http://www.mimekit.net/docs/html/M_M...rt__ctor_2.htm
    http://www.mimekit.net/docs/html/T_M...TextFormat.htm

    Ce qui donnerai à priori ceci (non testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var message = new MimeMessage ();
    message.From.Add (new MailboxAddress ("Joey", "joey@friends.com"));
    message.To.Add (new MailboxAddress ("Alice", "alice@wonderland.com"));
    message.Subject = "How you doin?";
     
    message.Body = new TextPart (TextFormat.RichText) {
        Text = richTextBox1.RTF
    };

  7. #7
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci Popo, c'est exactement la doc sur laquelle je me base depuis hier http://www.mimekit.net/docs/html/Creating-Messages.htm
    Par contre, si j'ajoute dans mon code
    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
               MimeMessage mime = new MimeMessage();
                            mime.From.Add(new MailboxAddress(textName.Text, textUser.Text));
                            mime.Subject = textSubject.Text;
                            mime.Body = new TextPart(MimeKit.Text.TextFormat.RichText) { Text = richTextBox1.Rtf };
     
                            if (open1.FileName != string.Empty)
                            {
                                builder.Attachments.Add(open1.FileName);
     
                            }
                        foreach (string str in listBoxMail.Items)
                        {
     
                            mime.To.Add(MailboxAddress.Parse(str));
     
                        }
    j'ai un message à la reception:
    " No valid message body or attachments were found in this email. Please check with the sender to ensure that they are sending valid emails. The raw message is attached.\n\n" et une piece jointe en ".eml"...
    J'ai essayé en testant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mime.Body = new TextPart(MimeKit.Text.TextFormat.RichText) { Text = richTextBox1.Text };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mime.Body = new TextPart(MimeKit.Text.TextFormat.Html) { Text = richTextBox1.Rtf };
    Le corps de mon mail s'affiche comme ça:
    {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1036{\fonttbl{\f0\fnil\fcharset0 Bauhaus 93;}} {\*\generator Riched20 10.0.19041}\viewkind4\uc1 \pard\f0\fs29 This newsletter template has been strategically designed, so your email gets the job done while still being a visual treat. The simple, no-fluff design and multiple CTA buttons make this template not to be missed.\par }
    J'ai testé aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mime.Body = new TextPart(MimeKit.Text.TextFormat.Html) { Text = richTextBox1.Text};
    Pareil, sans succés...

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 680
    Points : 5 266
    Points
    5 266
    Par défaut
    As-tu essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new TextPart(TextFormat.Enriched) { Text = richTextBox1.Rtf }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new TextPart(TextFormat.CompressedRichText) { Text = richTextBox1.Rtf }
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new TextPart("rtf") { Text = richTextBox1.Rtf }

  9. #9
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Oui Popo, j'ai testé avec tout les TextFormat possible et les formats "html, plain et rtf"
    Est ce que mon probleme ne pourrait pas se trouver dans la façon dont j'applique la Font peut etre?
    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
    //Combo pour modifier la Font 
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                 richTextBox1.Font = new Font(comboBox1.Text, richTextBox1.Font.Size);
     
            }
     
            //Combo pour modifier la taille de la police 
            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                richTextBox1.Font = new Font(richTextBox1.Font.FontFamily, float.Parse(comboBox2.SelectedItem.ToString()));
     
            }
     
            //Methode pour ajouter la nouvelle Font sélectionné à richTextbox1
            private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
     
                foreach (FontFamily font in FontFamily.Families)
                {
                    comboBox1.Items.Add(font.Name.ToString());
     
     
                }
     
            }

  10. #10
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 680
    Points : 5 266
    Points
    5 266
    Par défaut
    Dommage que ça ne fonctionne pas.
    Il va donc falloir revenir à la conversation Rtf vers Html avant d'utiliser HtmlBody

  11. #11
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par popo Voir le message
    Dommage que ça ne fonctionne pas.
    Il va donc falloir revenir à la conversation Rtf vers Html avant d'utiliser HtmlBody

    Bon, j'aurais essayé
    Ok, je vais donc revenir à la conversion, merci beaucoup pour ton aide très prècieuse Popo

  12. #12
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2022
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par popo Voir le message
    Dommage que ça ne fonctionne pas.
    Il va donc falloir revenir à la conversation Rtf vers Html avant d'utiliser HtmlBody
    J'ai enfin réussi en ajoutant le package RtfPipe et en remplaçant:

    builder.HtmlBody = richTextBox1.Rtf; par builder.HtmlBody = RtfPipe.Rtf.ToHtml(RichTextBox1.Rtf);

    Je joint la documentation concernée:
    https://stackoverflow.com/questions/...72912#59572912

    Merci beaucoup pour ton aide Popo

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/06/2011, 12h41
  2. erreur : "La topologie actuelle n'est pas prise en charge"
    Par chantalboyer dans le forum Installation
    Réponses: 0
    Dernier message: 28/12/2010, 19h32
  3. Réponses: 4
    Dernier message: 30/05/2010, 23h35
  4. Réponses: 9
    Dernier message: 30/01/2008, 09h35
  5. Réponses: 6
    Dernier message: 09/07/2007, 13h49

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