Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Richtext in HTML und/oder Plaintext umwandeln (https://www.delphipraxis.net/207931-richtext-html-und-oder-plaintext-umwandeln.html)

ioster 18. Mai 2021 10:33

Richtext in HTML und/oder Plaintext umwandeln
 
Moin,

ich habe gerade die Suchfunktion bemüht, um mit einfachen Mitteln einen Langtext im RTF-Format in HTML- oder Plaintext umwandeln zu können.

Hintergrund dabei ist, dass ein Beschreibungstext in einer Anwendung mit Absatzformatierungen gespeichert werden soll, damit die Belege akzentuiert werden können. Für den Druck von Etiketten oder einfachen Druckausgaben benötige ich denselben Text, aber in einer einheitlichen Schrift und ohne Effekte, wenn man von Nummerierungen und Einrückungen absieht.

Im Programm habe ich zur Bearbeitung und Speicherung zwei Datenbankfelder und zwei Controls - ein DBRichEdit und ein DBMemo. Im OnEditValueChanged habe ich eine Zuweisung DBMEMO1.Text := DBRICHEDIT.Text vorgenommen, die ansatzweise das gewünschte umsetzt. Allerdings werden Listenformatierungen unterschlagen und wenn man den Text per Zwischenablage einkopiert, erscheint anstelle des Punktes für eine Aufzählung ein Kästchen, weil die Zeichensätze nicht wirklich zusammenpassen.

On top benötige ich nun auch noch eine Konvertierung des RTF-Inhalts in HTML, da die Textinhalte auch im Internet genauso dargestellt werden sollen.

Hat jemand Erfahrung mit der Umwandlung der Textformatierungen?

Danke im Voraus.

Viele Grüße
Ingo

hoika 18. Mai 2021 11:24

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Hallo,
meinst Du sowas?

https://www.delphipraxis.net/112611-...t-formats.html
https://stackoverflow.com/questions/...-from-richedit

Delphi.Narium 18. Mai 2021 11:32

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Nur unreife Gedanken:

Steht auf dem Rechner, auf dem die Software läuft, Word zur Verfügung?

Wenn ja, dann RTF mit Word laden und als HTML speichern.

Könnte auch mit RTF und Text gehen, habe aber keine Ahnung, was da an Formatierungen erhalten bleibt bzw. verloren geht.

Zitat:

anstelle des Punktes für eine Aufzählung ein Kästchen
Da kann man ja einfach mal schauen, welches Zeichen das ist und es entsprechend austauschen (sofern das tatsächlich das einzige Problem sein sollte).

Aus einer fremden Welt, aber sicherlich mit vertretbarem Aufwand portierbar: RTF TO HTML

Von Torry - T. Skovmand Eriksen - Rtf2Html v.1.0 das Altertümchen für Delphi 2 nehmen und an die eigenen Bedürfnisse anpassen.

JVCL Help: TJvRichEditToHtml Class

Datenbanklösung: Convert RTF to Plain Text (T-SQL)

ioster 18. Mai 2021 13:29

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Moin,

MS Office oder andere Fremdprogramme möchte ich bei der Lösung ausschließen, weil ich nicht voraussetzen kann, dass der Anwender diese auf seinem Rechner hat. Zudem habe ich schlechte Erfahrungen bei Versionswechseln mit Word, Outlook und Konsorten gemacht.

Ich habe dieses Portal schon nach bestimmten Stichworten abgeklopft, konnte dabei DIE Lösung aber nicht finden.

Bei der Umformatierung sollen eben auch Listungen wie
  • erste Zeile
  • zweite Zeile
oder
  1. erste Zeile
  2. zweite Zeile
stehenbleiben.

Mit meiner Syntax, die Text-Eigenschaft des RichEdit-Objekts auszulesen, gehen diese Formatierungen leider unter.

Die Lösung mit einem Stream habe ich vorhin versucht umzusetzen, aber dabei ist am anderen Ende gar nichts rausgekommen. Ich hatte die Lines des RichEdit-Objektes in einem Stream geschrieben und diesen in einem ungebundenen Memo-Objekt geladen. Auf dem Bildschirm kam aber kein Text an.

Über T-SQL kann ich es auch nicht umsetzen, weil ich es direkt über die Anwendung generieren möchte. FireDAC bereitet mir schon genug Grummeln in der Magengegend und bei einer anderen Datenbank als MS SQL würde könnte ich bei der Lösung auch gegen die Wand laufen.

Es ist schon ein wenig verwunderlich, dass weder Embarcadero noch ein anderer Komponentenhersteller eine Methode an die Objekte angefügt hat, die eine Umformatierung ohne großen Aufwand erlaubt.

Viele Grüße
Ingo

hoika 18. Mai 2021 13:37

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Hallo,
es sollen also bestimmte Formatierungen doch erhalten bleiben

Zitat:

Bei der Umformatierung sollen eben auch Listungen wie
- erste Zeile
- zweite Zeile
oder
1. erste Zeile
2. zweite Zeile
stehenbleiben.
PlainText, also ohne Formatierung ist das aber nicht.
Deshalb bleibt dir hier wohl nur übrig, das selber zu bauen
und das genau so so vereinfachen, wie du es brauchst.

Bsp.
StringReplace(s,'<br>','',[rfReplaceAll]);
StringReplace(s,'</br>','',[rfReplaceAll]);

Um z.B. fett "auszumerzen".


zu dem vorherigen Post noch:
Zitat:

RichEdit-Objektes in einem Stream geschrieben und diesen in einem ungebundenen Memo-Objekt geladen
Warum?
RichEdit.PlainText benutzen.
Beim Laden ins Memo hast Du vielleicht Position nicht auf 0 zurückgesetzt?.
Lade das mal in ein "gebundenes" Memo, um überhaupt rauszufinden, was im Memo ankommt.

juergen 18. Mai 2021 17:20

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Man kann evtl. auf eine fertige Lösungen setzen, die sich in der Praxis bewährt hat und sich u.U. damit größeren Aufwand sparen.
ScroogeXHTML für Delphi
Ich nutze diese Komponenten schon ziemlich lange und bin sehr zufrieden damit.
Auch Konvertierung in Plaintext wird unterstützt.

ioster 19. Mai 2021 07:19

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Zitat:

Zitat von juergen (Beitrag 1489700)
Man kann evtl. auf eine fertige Lösungen setzen, die sich in der Praxis bewährt hat und sich u.U. damit größeren Aufwand sparen.
ScroogeXHTML für Delphi
Ich nutze diese Komponenten schon ziemlich lange und bin sehr zufrieden damit.
Auch Konvertierung in Plaintext wird unterstützt.

Moin,

die Infos auf der Webseite klingen interessant. Ich werde mit der Demo-Version ausprobieren, ob ich damit das HTML-Problem gelöst bekomme.

Was den Plaintext anbetrifft, werde ich wohl die Steuercodes mit Replace rauswerfen müssen und die Absatzformatierungen mit entsprechenden Zeichenketten ersetzen.

Viele Grüße
Ingo

juergen 19. Mai 2021 10:19

AW: Richtext in HTML und/oder Plaintext umwandeln
 
Zitat:

Zitat von ioster (Beitrag 1489723)
Was den Plaintext anbetrifft, werde ich wohl die Steuercodes mit Replace rauswerfen müssen und die Absatzformatierungen mit entsprechenden Zeichenketten ersetzen.
Ingo

Wie gesagt, auch das konvertieren in Plaintext wird mit dieser Komponente unterstützt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz