RTF to HTML

Rund um die LCL und andere Komponenten
wp_xyz
Beiträge: 5185
Registriert: Fr 8. Apr 2011, 09:01

Re: RTF to HTML

Beitrag von wp_xyz »

Ich weiß nicht, eigentlich ist das RichMemo schon sehr gut, man müsste sich nur tiefer damit befassen, dann kriegt man die Benutzeroberfläche sicher besser hin als in meinem Demo. Man kann sogar Bilder einfügen, zumindest in den Fließtext (allerdings weiß ich nicht, ob man sie auch bezüglich der Seite verankern kann). Und dann gibt es ja auch noch das KMemo, das angeblich noch kompletter ist.

Die Extraktion von Daten aus dem RTF ist ein anderes Thema. Ich bin da sehr spezifisch für HTML angegangen, aber vielleicht will jemand ja auch rtf nach pdf, oder nach odt? Da müsste man wieder von vorne anfangen... Da kommt dann die Idee des FPVectorial wieder ins Spiel, die Daten in ein grundlegendes Gerüst einzulesen, aus dem man in beliebigen Zielformaten schreiben kann. Man bräuchte nur einen RTF-Reader für FPVectorial - vielleicht mache ich das mal... Leider hat sich der Schöpfer von FPVectorial vom Lazarus-Team verabschiedet.

Für kleinere Extraktionsaufgaben ist der RTFPars gut geeignet, um z.B. den "Text" oder "alle Bilder" extrahieren.

Benutzeravatar
theo
Beiträge: 10916
Registriert: Mo 11. Sep 2006, 19:01

Re: RTF to HTML

Beitrag von theo »

wp_xyz hat geschrieben: Mi 7. Jun 2023, 18:18 Ich weiß nicht, eigentlich ist das RichMemo schon sehr gut, man müsste sich nur tiefer damit befassen, dann kriegt man die Benutzeroberfläche sicher besser hin als in meinem Demo. Man kann sogar Bilder einfügen, zumindest in den Fließtext (allerdings weiß ich nicht, ob man sie auch bezüglich der Seite verankern kann). Und dann gibt es ja auch noch das KMemo, das angeblich noch kompletter ist.
Was mir an RichMemo nicht gefällt ist, dass es kein natives Pascal Control ist.
Wenn man solche komplexen Widgets (GtkTextView, QTextEdit, RichEdit, NSTextView...) kapselt, kommt auf jeder Plattform etwas anderes heraus oder ggf. auch einfach nicht viel, wie z.B. bei Qt.
Siehe z.B. https://wiki.lazarus.freepascal.org/Ric ... orkArounds
Für Multi-Plattform ist das immer eine wacklige Sache.

KMemo ist da als natives Control schon viel besser.
Ich würde das jedenfalls dem RichMemo vorziehen.
Was ich dort nicht optimal finde ist, dass es sich so eng an RTF orientiert und Plugins für andere Formate anscheinend nicht angedacht sind.

Mein eigener Versuch hatte eine Art DOM-Tree als Rückgrat und dieser konnte durch verschiedene Streamer Plugins (TXT, HTML, ODT, RTF, Natives Format) bestückt und gespeichert werden.

Soner
Beiträge: 734
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: RTF to HTML

Beitrag von Soner »

wp_xyz hat geschrieben: Mi 7. Jun 2023, 00:25 Es ist schon Wahnsinn, welches Kleinod man manchmal in den FPC-Verzeichnissen findet. Zu dem Thema dieses Thread passt die Unit RtfPars, die einen weitgehend kompletten Parser von RTF-Dateien zur Verfügung stellt. Hat etwas gedauert, bis ich herausgefunden habe, wie das Ding funktioniert, aber nun konnte ich das Beispiel der vorigen Posts so umschreiben, dass nicht mehr das RichMemo zum Umwandeln nach HTML verwendet wird, sondern eben dieser Parser. Und damit ist die Umwandlung so schnell wie man es erwartet.

Probiere mal das beigefügte Projekt aus. Ein Beispiel-RTF, erstellt vom RichMemo, zeigt, was alles unterstützt wird. Das erstellte HTML passt weitgehend, bis auf die im Memo eingegebenen Leerzeilen - da muss ich bei Gelegenheit nochmals nachfassen. Ich habe mich auch an Tabellen und Bildern versucht, aber ist im RTF so haarsträubend implementiert, dass ich das vorerst aufgegeben habe.

In dem Zip ist auch eine geringfügig überarbeitete Version des Parsers enthalten, denn die FPC-Version ignoriert ein paar Kommandos.
Ich bin über diesen Beitrag hier gestolpert und das ausprobiert. Ich finde es richtig gut, hut ab. Das sollte man vielleicht bei RichMemo zu Beispielen packen, damit es nicht hier verloren geht.
Wenn man jetzt für Tabulator-Zeichen für HTML 8 mal, oder variabel,   verwenden würde, dann könnte man eine Tabelle simulieren und wenn man die Bilder wie bei Save Page WE Erweiterung von Firefox einbetten würde, dann wäre es perfekt für Textverarbeitung, die man auch nach HTML exportiert.

Antworten