Entwickler-Ecke

Dateizugriff - RTF > HTML


maze2k - Di 11.11.03 23:30
Titel: RTF > HTML
Hi,
folgendes Problem:
ich habe ein Eingabe-Feld (TRichEdit).
Hier kann der Benutzer Text eingeben und gestalten.
Jetzt brauche ich eine Funktion, die diesen formatierten Text in HTML-Format umwandelt.

Ich habe hier im Forum schon gesucht, bin aber nur auf Komponenten gestoßen, die bei kommerzieller Nutzung Geld kosten. (Mein Programm will ich verkaufen...)

Gibt es eine (echte!) freeware-Komponente die RTF in HTML umwandeln kann?

Btw. ich hab hier im Forum und auch bei der Suche im Web irgendwo eine Unit rtf2html gefunden. Ich habe sie eingebunden, aber wenn ich die Funktion aufgerufen habe und ihr einen RTF-Text übergeben habe, dann hat das Programm einen Fehler ausgegeben.

Kennst einer eine andere gute freeware Komponente oder kann mir jemand mit der rtf2html-Unit helfen?

thx...


Tino - Mi 12.11.03 10:33
Titel: Re: RTF > HTML
maze2k hat folgendes geschrieben:
Ich habe sie eingebunden, aber wenn ich die Funktion aufgerufen habe und ihr einen RTF-Text übergeben habe, dann hat das Programm einen Fehler ausgegeben.

Wo gibt es die Komponente und wie lautet der Fehler?

Gruß
Tino


StefanH - Mi 12.11.03 17:01

http://www.delphi-forum.de/viewtopic.php?t=14480&start=0&postdays=0&postorder=asc&highlight=html

vielleciht hilft dir das...


maze2k - Do 13.11.03 20:37

ja das funktioniert ja schon mal, danke *g*
leider hab ich folgende Fehler / Unschönheiten:

Ich hatte einen Fehler, dass er erst ab dem zweiten Zeichen einen Text kursiv gemacht hat, aber das ist irgendwie nicht reproduzierbar :-/

Und dann fehlt mir noch, dass er Schriftarten übernimmt.

Bilder sollte er auch erkennen, genauso wie Hyperlinks...

Gibt es ein RFT-Format für Hyperlinks?


maze2k - Mo 17.11.03 19:49

Hm, kann mir keiner helfen?
Welchen Code muss ich noch einbauen?
Oder gibt es andere habt ihr noch andere Funktionen, die mehr können?


maze2k - Mo 17.11.03 20:32

Ok, ok ich habs selbst gelöst:

bei den Vars kommt noch

Delphi-Quelltext
1:
    AktFace:String// Aktuelle Schriftart                    

hinzu,

bei

Delphi-Quelltext
1:
   // die Daten des ersten Zeichens herausfinden                    

kommt

Delphi-Quelltext
1:
   Aktface := Source.Selattributes.Name;                    


im Block untendran kommt

Delphi-Quelltext
1:
   ReihenFolge.Add(Pointer(7));                    

dazu

und der nächste Block sieht so aus:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
   // Die Fonteinstellungen des ersten Zeichens
   s:=s+'<font size="'+IntToStr(aktsize)+'" color="#'+
   IntToHex(GetRValue(AktColor),2)+
   IntToHex(GetGValue(AktColor),2)+
   IntToHex(GetBValue(AktColor),2)+
   '" face="'+ aktface +
   '">';


in


Delphi-Quelltext
1:
2:
       for loop2:=0 to ReihenFolge.Count-1 do  
        case Integer(ReihenFolge[loop2]) of


habe ich ans ende noch:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
             7 : if Name<>aktface then
                 begin
                  aktface:=name;
                  s:=s+'</font><font size="'+
                  IntToStr(aktsize)+'" color="#'+
              IntToHex(GetRValue(AktColor),2)+
              IntToHex(GetGValue(AktColor),2)+
              IntToHex(GetBValue(AktColor),2)+
              '" face="'+ aktface +
              '">';
                  ReihenFolge.Move(loop2,0);
                end;

eingefügt.

Das wars schon *g*