Si vous n'avez pas peur de vous salir les mains, il n'est pas si difficile d'écrire un convertisseur RTF vers HTML.
L'écriture d'un convertisseur RTF->HTML à usage général serait quelque peu compliquée car il faudrait traiter des centaines de verbes RTF. Cependant, dans votre cas, vous ne traitez que les verbes utilisés spécifiquement par Crystal Reports. Je parie que le codage RTF standard généré par Crystal ne varie pas beaucoup d'un rapport à l'autre.
J'ai écrit un convertisseur RTF vers HTML en C++, mais il ne traite que le formatage de base comme les polices, l'alignement des paragraphes, etc. Mon traducteur supprime tout formatage spécialisé qu'il n'est pas préparé à traiter. Il a fallu environ 400 lignes de C++. Il analyse le texte à la recherche de balises RTF et les remplace par des balises HTML équivalentes. Les balises RTF qui ne figurent pas dans ma liste sont simplement supprimées. Une fonction regex est vraiment utile pour écrire un tel convertisseur.
1 votes
Envoyer un fichier PDF n'est pas une solution ?
1 votes
Non, nous envoyons d'autres documents en pièces jointes au format PDF, mais nous voulons que l'e-mail ait un corps. La partie pour laquelle j'ai besoin du HTML est le corps.
0 votes
Je ne peux pas répondre puisque ce sujet est classé hors-sujet, mais merci à GNU je recommande d'utiliser UnRTF .
brew install unrtf
alorsunrtf --html input.rtf > output.html
.2 votes
Je ne sais pas pourquoi les gens parlent d'utilitaires de ligne de commande aléatoires dans une question sur le C# (ou en quoi cela est considéré comme "hors sujet" !?) - mais la réponse courte est : utilisez simplement
RtfPipe
via NuGet, la syntaxe est justevar html = Rtf.ToHtml(rtf);
et il supporte une tonne de fonctionnalités. Pour une réponse plus longue, voir : stackoverflow.com/a/59572912/3986301 votes
Comme vous pouvez le constater, j'ai posé cette question il y a plus de 10 ans, lorsque Nuget n'existait pas encore. Merci pour le commentaire/la réponse. Je ne sais pas non plus pourquoi ni quand cette question a été classée hors sujet, car je demande manifestement un moyen de le faire, et non une bibliothèque à utiliser. Quoi qu'il en soit, bonne journée à vous tous.