If you really want to create RTF content using TRichEdit , then you must save the native RTF that it creates with the converted HTML. If the only reason you use TRichEdit is because you can have simple formatting capabilities, then you are probably better off using an HTML control that generates its own HTML content.
No matter how you go, itβs better to keep your own format for users to edit the content, and convert it as needed to other formats (instead of converting it in both directions).
If you use TRichEdit , you can easily transfer the contents of the RTF to and from the control, although I recommend TJvRichEdit over TRichEdit :
procedure GetRTFData(MS: TMemoryStream; RTF: TRichEdit); begin MS.Clear; RTF.Lines.SaveToStream(MS); MS.Position := 0; end; procedure SetRTFData(MS: TMemoryStream; RTF: TRichEdit); begin MS.Position := 0; RTF.StreamFormat := sfRichText; RTF.Lines.LoadFromStream(MS); end;
Manually converting RTF to HTML is no easy task. There are Unicode character considerations, font styles, font codes, paragraph formatting, numbered lists, special HTML characters, and more. Despite the fact that you just need to support simple formatting, users often use other functions that cause headaches for conversion - for example, copying content from MSWord and pasting it into your application with all types of formatting and fonts.
JvRichEditToHtml does a decent job converting RTF to HTML, but we ended up writing our own conversion unit because we do a lot more with RTF than simple formatting. JvRichEditToHtml should easily handle what you described if users do not enter complex content through copy / paste or use keyboard shortcuts to format the content (e.g. bullets = ctrl + shft + L, indent = ctrl + M, etc.).
There are also some good HTML controls for Delphi if you want to get around the complexity of authoring in RTF and converting to HTML:
Google Results :: Delphi, HTML, Editor, Component
Stack Overflow :: Delphi, HTML, editor, component
We use TRichView because of its extensive capabilities. It can load / create RTF and export HTML. However, this is not free. If you are looking for something free, TJvRichView and JvRichEditToHtml are good options.