Rtfansitextwriter : générer du rtf en vb.net et convertir du pseudo html en rtf

Soyez le premier à donner votre avis sur cette source.

Vue 13 308 fois - Téléchargée 901 fois

Description

Cette source contient un Writer RTF permettant d'écrire un fichier/fragment RTF complet. Il permet d'entrer directement du RTF dans un Richtextbox ou dans sa sélection. En fait, la méthode classique de la saisie du texte pour utiliser la sélection à formater est très très lente.

Pour générer du RTF directement :
-> comme pour tout les Writer, vous devez passer un Stream ou un Writer (flux sous jacent) (StringWriter, StreamWriter) au constructeur de la classe pour stocker le RTF généré
-> utiliser les propriétés pour la mise en forme et la méthode WriteString pour le texte
-> appeler la méthode Generate pour finaliser le RTF et l'écrire dans le flux sous jacent

Ce Writer gère :
-> les polices
-> les couleurs de fond/police
-> les tailles de police
-> italique/gras/sousligné/barré/exposant/indice/smallcaps
-> insertion d'image
-> liste à points
-> liste numérotée (ou titre)
-> tableaux (basiques)

De plus, ce code fournit un convertisseur pseudo HTML vers RTF (très basique avec tag fixe, y-compris les <font size="">). Ce convertisseur nécessiterait un filtre si l'on souhaite entrer une page HTML directement.

Pour générer du RTF à partir du pseudo HTML, il suffit de construire un HTML2RTF avec en paramètre le html sous forme de chaine et une police par défaut puis d'appeler la méthode GetOuput pour récupérer un stream contenant le RTF ou GetOutputString pour récupérer le RTF en chaine.

Conclusion :


Le bouton Update du projet permet de traduire le HTML de la zone supérieure dans le richtextbox de la zone inférieure. Le Bouton Save enregistre le RTF généré à partir du HTML dans un fichier Test.rtf dans le dossier de l'application.

N'hésitez pas à commenter et à noter

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
135
Date d'inscription
lundi 17 juin 2002
Statut
Membre
Dernière intervention
20 juillet 2013

c'est clair, ca marche, parfait!
Messages postés
1
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
13 mai 2008

Trop TOP
Messages postés
2
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2008

Merci, j'ai pas fini de testé mais çà m'a l'air d'une trés bonne source, continu comme çà.
Messages postés
9
Date d'inscription
dimanche 5 août 2007
Statut
Membre
Dernière intervention
28 octobre 2007

Bonjour,

Merci c'est beaucoup plus clair.

Daniel
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
14
salut,

les termes en question sont les noms classes de bases de l'espace de nom System.IO. Il y a deux types de fichiers (comme sous unix d'ailleurs) et donc de flux de lecture/écriture de ces types de fichiers:
-> les Writer/Reader écrivent (respectivement lisent) des caractères (et donc des chaines de caractères)
-> les Streams écrivent et lisent des octets

Un flux est une conteneur de caractère ou d'octets ou de ce que l'on veut dans lequel tu peux lire et écrire, te déplacer comme tu veux.

Ensuite, tu as des classes comme FileStream pour lire/écrirer un fichier binaire (d'octets) ou StreamWriter/StreamReader pour écrire/lire un fichier texte (ou alors pour transformer un flux d'octets en flux de caractères). Enfin, tu as des classes comme MemoryStream (un flux d'octet en mémoire), StringReader/StringWriter pour lire écrire dans une chaine.

Pour ce qui est de mon RTF Writer, je prend en paramètre constructeur le flux dans lequel écrire, que ce soit un Writer ou un Stream.

Donc dans le cas qui nous concerne, cela signifie que tu fais quelque chose comme :
Dim rtfGen as new RtfAnsiTextWriter(new StreamWriter("c:\test.rtf"),new Font("Arial",14))
'utilisation
rtfGen.Generate()
rtfGen.Close()

ShareVB
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.