Se si desidera generare contenuto RTF utilizzando uno TRichEdit
, è necessario memorizzare il formato RTF nativo generato insieme al codice HTML convertito. Se l'unica ragione per cui stai usando TRichEdit
è che puoi avere semplici capacità di formattazione, probabilmente stai meglio usando un controllo di modifica HTML che genera contenuto HTML nativo.
Indipendentemente dal modo in cui si va, è meglio memorizzare il formato nativo per gli utenti per modificare il contenuto e convertirlo secondo necessità in altri formati (invece di convertirlo in entrambe le direzioni).
Se si utilizza TRichEdit
, allora si può facilmente lo streaming del contenuto RTF dentro e fuori del controllo, anche se vi consiglio TJvRichEdit
oltre 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 la conversione di formato RTF in HTML non è un compito facile. Esistono considerazioni sui caratteri unicode, stili di caratteri, codici di caratteri, formattazione di paragrafi, elenchi numerati, caratteri HTML speciali e molto altro ancora. Anche se hai solo bisogno di supportare la semplice formattazione, gli utenti spesso usano altre funzionalità che causano mal di testa nelle conversioni, come copiare i contenuti da MSWord e incollarli nell'app con tutti i tipi di formattazione e stili di carattere.
JvRichEditToHtml
fa un lavoro decente convertendo RTF in HTML, ma abbiamo finito per scrivere la nostra unità di conversione perché facciamo molto di più con RTF rispetto alla semplice formattazione. JvRichEditToHtml
dovrebbe gestire facilmente ciò che hai descritto purché gli utenti non introducano contenuti complessi tramite copia/incolla, o utilizzare le scorciatoie da tastiera per formattare il contenuto (ad esempio, punti elenco = ctrl + shft + L, indent = ctrl + M , eccetera.).
Ci sono anche molti buoni controlli di modifica HTML per Delphi, se si desidera ignorare le complessità di authoring in formato RTF e la conversione in HTML:
Google Results :: Delphi, HTML, Editor, Component
Stack Overflow :: Delphi, HTML, Editor, Component
Usiamo TRichView
a causa delle sue ampie capacità. Può caricare/creare RTF ed esportare HTML. Non è comunque libero. Se stai cercando qualcosa di gratuito, TJvRichView
e JvRichEditToHtml
sono buone opzioni.
C'è uno spot, facile da usare RTF per HTML/RTF alla libreria convertitore XHTML per Delphi chiamato ScroogeXHTML, che può essere configurato per elaborare solo le proprietà di base dei font. (disclaimer: io sono l'autore di questa libreria) – mjn
E quanto costa questa libreria? – PSyLoCKe
Puoi trovarlo su ['questa pagina'] (http://www.habarisoft.com/scroogexhtml_delphi.html) ;-) – TLama