2011-01-12 7 views
3

Ich habe versucht, eine freie (vorzugsweise Open Source) Komponente oder Bibliothek zu finden, die es ermöglicht, eine RTF-Datei mit eingebetteten Bildern in HTML-Datei und Bilddateien oder besser HTML und Bildströme zu konvertieren.Wie konvertiert man RichText (RTF) -Dokument mit Bildern in Delphi in HTML?

Die perfekte Lösung, unabhängig davon, ob es eine DLL-Bibliothek oder eine Delphi-Komponente ist, würde es erlauben, Daten in IStream/TStream mit Rückrufen zu streamen, so dass ich Bilder in ein Format der Wahl konvertieren und speichern kann Name für den RTF-Parser, der in die generierte HTML-Datei eingefügt werden soll. Das Speichern ist aber auch gut, besonders wenn der Quellcode offen ist.

Ich bin auf kommerzielle Lösungen gestoßen, aber ich habe Mühe, sie zu berücksichtigen, weil die Preise für eine (relativ) einfache Konvertierung eines Dokumenttyps in einen anderen relativ hoch sind und beide Formate 20 Jahre alt sind , nicht verwaltet), um eine solche Umwandlung zu machen.

Wenn ich keine Lösung finden werde, werde ich wahrscheinlich this Code in Delphi dll konvertieren und zur Verfügung stellen, aber vielleicht hat jemand es schon gemacht?

EDIT:

Wir haben beschlossen, oben genannten verwenden .Net RtfConverter als DLL kompiliert, erzeugen Delphi-TLB-Einheit von ihm und Kraft Kunden NET Framework (eingebettet in Installer) zu installieren. Jetzt funktioniert die Umwandlung wie ein Charme, ein anderes Zeichen, es ist Zeit, zu .Net von Delphi zu gehen ...

+1

Die RTF Spezifikation ist nicht einfach und die Konvertierung ist nicht so einfach, wie es scheinen mag. Tatsächliche RTF-Dokumente sind komplizierter als kurze Textausschnitte mit einigen Fett- und Kursivdrucken. Betrachten Sie Unicode und Lokalisierung und mehrere Schriftarten und CSS und Kopf- und Fußzeilen und Absatzformatierung und Tabellen und geschachtelte Tabellen usw. usw. Nicht alle, aber einige der kommerziellen Software-Tools, die RTF in HTML konvertieren, sind wert, was sie berechnen. Ich habe keinen geschrieben, aber einen verwendet, der $ 499 kostet, und es ist jetzt in einer verwalteten Code-Version (100% C#) verfügbar. – Tim

+0

Vielleicht ist einfach keine korrekte Beschreibung für eine solche Konvertierung, aber die RTF-Tag-Liste ist ziemlich begrenzt und sowohl Windows als auch Delphi haben die Möglichkeit, an internationalen Zeichen zu arbeiten. Speichern von HTML-Datei in Unicode mit < and > Zeichen maskiert ist auch eine Möglichkeit, die ich in Betracht ziehe. Die Bibliothek, die ich erwähnt habe, ist eine funktionierende Lösung in verwaltetem C# -Code, mit der ich versuche, Anwendungsabhängigkeiten so gering wie möglich zu halten. – too

+0

Die Preise für kommerzielle RTF-HTML-Konverter beginnen bei etwa 130 US-Dollar (keine Lizenzgebühren) - einschließlich vollständigen Delphi-Quellcodes – mjn

Antwort

3

Wenn Sie Microsoft Office verwenden könnten, um das RTF zu öffnen und es dann als HTML im Hintergrund zu speichern, dann glaube ich das ist die beste Lösung, feuern Sie einfach eine Microsoft Word-Instanz im Hintergrund mit OLE, laden Sie die RTF und exportieren Sie es als HTML ...

+2

Leider erfordert dies, dass ein kommerzielles Produkt im Wert von einigen Hundert USD/GBP/... auf einer Maschine installiert wird. – too

+0

Ich stimme 110% zu, aber die meisten Benutzer neigen dazu, Office installiert zu haben. Wenn Ihr Ziel ein bestimmter Client ist und er die Office-Suite hat, schlage ich vor, dass Sie damit fortfahren, ansonsten müssen Sie mehr suchen und selbst implementieren ... – ComputerSaysNo

+0

..und dann hast du zwei Probleme .. –

3

Ein kommerzieller Konverter für RTF zu HTML 4.01/HTML5 und RTF zu verschiedenen Aromen von XHTML ist ScroogeXHTML for Delphi. Version 5.0 enthält verbesserte Bildunterstützung, mit Beispielcode für WMF zu PNG Konvertierung. (Ich bin der Entwickler dieser Komponente und ihres Pendants für die Java-Plattform).

+0

Vielen Dank für den Link. Ich werde noch ein wenig länger auf eine mögliche freie Lösung warten, die mit dem Rückgriff auf ScroogeXHTML in Frage gestellt wird, da es vielversprechend aussieht. Haben Sie Pläne, Tabellen-/Listen-Unterstützung einzubeziehen? – too

+0

Einfache nummerierte und unnummerierte Listen werden unterstützt, Tabellen passen jedoch nicht gut in die interne Dokumentation von Zwischendokumenten und erfordern eine umfangreiche Neugestaltung (aber es wird geprüft) – mjn

-1

P.S: Ich bin ein Entwickler dieses Produkts.

Dies ist eine kommerzielle .Net-Bibliothek zu convert RTF to HTML 3.2, 4.01, XHTML 1.01 and HTML 5. Es

Träger mit Tabellen und verschachtelte Tabellen, geordnet und Aufzählungen, Bilder eingebettet in HTML, Unicode, spezielle HTML-Symbole usw. konvertieren

Dies ist ein Beispielcode in C#:

 SautinSoft.RtfToHtml r = new SautinSoft.RtfToHtml(); 
     r.OutputFormat = SautinSoft.RtfToHtml.eOutputFormat.HTML_5; 
     r.ImageStyle.IncludeImageInHtml = true; 
     r.ConvertFile(@"d:\document.rtf",@"d:\html5.htm"); 
Verwandte Themen