Si realmente desea generar contenido RTF utilizando un TRichEdit
, debe almacenar el RTF nativo que genera junto con el HTML convertido. Si la única razón por la que está utilizando TRichEdit
es para que pueda tener capacidades de formateo simples, entonces probablemente sea mejor utilizar un control de edición HTML que genere contenido HTML nativo.
Independientemente de qué camino tome, es mejor almacenar el formato nativo para que los usuarios editen el contenido y convertirlo según sea necesario a otros formatos (en lugar de convertirlo en ambas direcciones).
Si utiliza TRichEdit
, entonces se puede transmitir fácilmente el contenido RTF dentro y fuera de control, aunque recomiendo TJvRichEdit
sobre 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;
manualmente convertir RTF a HTML no es una tarea fácil. Hay consideraciones de carácter unicode, estilos de fuente, códigos de fuente, formato de párrafo, listas numeradas, caracteres HTML especiales y mucho más. Aunque solo es necesario admitir el formato simple, los usuarios a menudo usan otras características que causan problemas de conversión, como copiar contenido de MSWord y pegarlo en su aplicación con todo tipo de formatos y estilos de fuente.
JvRichEditToHtml
hace un trabajo decente la conversión de RTF a HTML, pero terminamos escribiendo nuestra propia unidad de conversión porque hacemos mucho más con RTF que con el formato simple. JvRichEditToHtml
debe manejar fácilmente lo que ha descrito siempre y cuando los usuarios no introduzcan contenido complejo mediante copiar/pegar, o usar los atajos de teclado para formatear el contenido (por ejemplo, bullets = ctrl + shft + L, indent = ctrl + M , etc.)
También hay varios buenos controles HTML de edición para Delphi si desea pasar por alto las complejidades de la autoría en formato RTF y convertir a HTML:
Google Results :: Delphi, HTML, Editor, Component
Stack Overflow :: Delphi, HTML, Editor, Component
Utilizamos TRichView
debido a sus amplias capacidades. Puede cargar/crear RTF y exportar HTML. Sin embargo, no es gratis. Si buscas algo gratis, TJvRichView
y JvRichEditToHtml
son buenas opciones.
Hay un RTF comercial, fácil de usar a HTML/RTF a la biblioteca convertidor de XHTML para Delphi llamada ScroogeXHTML, que puede ser configurado para procesar sólo las propiedades básicas de la fuente. (descargo de responsabilidad: yo soy el autor de esta biblioteca) – mjn
¿Y cuánto cuesta esta biblioteca? – PSyLoCKe
Puede encontrarlo en ['this page'] (http://www.habarisoft.com/scroogexhtml_delphi.html) ;-) – TLama