it-swarm.com.de

Konvertieren Sie RTF in HTML

Wir haben einen Crystal Reports-Bericht, den wir als E-Mail versenden müssen, aber der HTML-Code, der aus dem Crystal Reports-Bericht generiert wird, ist ziemlich einfach hässlich und führt bei einigen E-Mail-Clients zu Problemen. Ich wollte es als Rich-Text exportieren und nach Möglichkeit in HTML konvertieren.

Irgendwelche Vorschläge?

44
Aaron Smith

Ich würde dieses Tool auf CodeProject RTFConverter überprüfen. Dieser Typ gibt eine gute Übersicht über die Funktionsweise des Programms sowie Einzelheiten zur Konvertierung.

Schreiben Sie Ihren eigenen RTF Converter

30
Richard R

Mike Stall hat den Code für einen Code, den er in c # geschrieben hat, hier gepostet:

http://blogs.msdn.com/jmstall/archive/2006/10/20/rtf_5F00_html.aspx

8
missaghi

Es gibt auch ein Beispiel in der MSDN-Codebeispielgalerie mit dem Namen Konvertieren zwischen RTF und HTML , mit dem Sie zwischen HTML, RTF) konvertieren können = und XAML.

8
Matthew Manela

AKTUALISIERT:

Ich bin nach Hause gekommen und habe den folgenden Code ausprobiert und es funktioniert nicht. Für jeden, der sich wundert, konvertiert die Zwischenablage nicht einfach magisch Dinge, wie ich es mir erhofft hatte. Vielmehr ermöglicht es einer Anwendung, ein Datenobjekt mit einer Vielzahl von Einfügeformaten "hochzuladen", und dann fügen Sie das Programm, in das das Programm eingefügt wird (in meiner Metapher der "Download"), in das bevorzugte Format ein. Am Ende habe ich persönlich diesen Code verwendet, der bereits empfohlen wurde, und es war enorm einfach zu verwenden und sehr effektiv. Nachdem Sie den Code importiert haben (in VStudio unter Projekt -> Vorhandene Dateien hinzufügen), wechseln Sie einfach in HTML zu RTF:

return HtmlToRtfConverter.ConvertHtmlToRtf(myRtfString);

oder die entgegengesetzte Richtung:

return RtfToHtmlConverter.ConvertHtmlToRtf(myHtmlString);

(unten ist meine vorherige falsche Antwort, falls jemand an der Chronologie dieser Antwort interessiert ist haha)

Die meisten, wenn nicht alle der oben genannten Antworten bieten umfassende, häufig bibliotheksbasierte Lösungen für das jeweilige Problem. Ich bin nicht an meinem Computer und kann die Idee daher nicht testen, aber eine alternative, billige und vage Hack-y-Methode wäre die folgende.

private string HTMLFromRtf(string rtfString)
{
            Clipboard.SetData(DataFormats.Rtf, rtfString);
            return Clipboard.GetData(DataFormats.Html);         
}

Auch hier bin ich mir nicht ganz sicher, ob dies funktionieren würde, aber ich vermute, dass ich nur mit etwas HTML auf meinem iPhone herumspielen würde. Die Dokumentation ist hier . Ausführlichere Erklärungen/docs RE zum Abrufen und Einstellen von Datenmodellen in der Zwischenablage finden Sie hier .

(Ja, ich bin mir sicher, dass ich Jahre später hier bin, aber ich gehe davon aus, dass diese Frage von einigen Menschen noch beantwortet werden soll.)

4
Max von Hippel

Wenn es Ihnen nichts ausmacht, sich die Hände schmutzig zu machen, ist es nicht so schwierig, einen RTF in HTML-Konverter zu schreiben.

Das Schreiben eines RTF-> HTML-Konverters für allgemeine Zwecke wäre etwas kompliziert, da Sie mit Hunderten von RTF Verben arbeiten müssten. In Ihrem Fall haben Sie es jedoch nur mit den Verben zu tun, die speziell von Crystal Reports verwendet werden. Ich wette, dass die von Crystal generierte Standardcodierung RTF von Bericht zu Bericht nicht sehr unterschiedlich ist.

Ich habe in C++ einen RTF in HTML-Konverter geschrieben, der sich jedoch nur mit grundlegenden Formatierungen wie Schriftarten, Absatzausrichtungen usw. befasst. Mein Übersetzer entfernt grundsätzlich alle speziellen Formatierungen, auf die er nicht vorbereitet ist. Es dauerte etwa 400 Zeilen C++. Grundsätzlich wird der Text nach RTF Tags durchsucht und durch entsprechende HTML-Tags ersetzt. RTF Tags, die sich nicht in meiner Liste befinden, werden einfach entfernt. Eine Regex-Funktion ist beim Schreiben eines solchen Konverters sehr hilfreich.

2
Kluge