2010-07-09 16 views
5

Ho bisogno di convertire rtf in testo normale. scrivevo una funzione che elimina le intestazioni RTF ma non è mai perfetta.Delphi: il modo migliore per convertire rtf in testo

Quindi un'opzione può utilizzare un TRichEdit creato in fase di esecuzione (qualcosa di simile a here ma fatto naturalmente in fase di esecuzione). Ma c'è un altro modo? Esiste una funzione rtl per questo o un approccio migliore?

UPDATE:

In this question ho scritto la versione finale del mio rtf al procedimento di testo.

+0

Cosa c'è di sbagliato in TRichEdit? E chi genera l'RTF che vuoi convertire? Se spero di convertire RTF generato da Microsoft Word, il TRichEdit originato da Microsoft potrebbe essere l'opzione migliore. –

+2

@Cosmin Prund: Potrebbe sembrare un po 'eccessivo creare un controllo GUI (anche se non viene mai visualizzato sullo schermo) solo per eseguire una conversione di file in background. Ma ovviamente, funziona. –

+1

Esattamente, questa era la mia preoccupazione. Di sicuro funziona. Ad ogni modo sembra che sia così. – LaBracca

risposta

3

Se si vuole veramente trovare un modo per fare questa conversione, si dovrebbe dare un'occhiata a come la classe TConversion è implementata nella classe TRichEditStrings. Queste classi sono in ComCtrls.pas. Comprendendo come viene eseguita la conversione all'interno dei controlli di RichEdit potresti essere in grado di scrivere la tua.

Tuttavia, se si considerano gli aspetti pratici dell'implementazione di questo e non si conoscono i requisiti di prestazione per la propria domanda, sceglierei l'approccio di conversione TRichEdit descritto nel collegamento.

+7

TRichEditStrings non implementa alcuna conversione, tutto il lavoro viene eseguito dal controllo RichEdit (TRichEdit non è altro che un wrapper attorno al controllo RichEdit di Microsoft). Scrivere la propria implementazione RTF in TEXT è semplice per il caso semplice e molto complicato per i casi complessi. Microsoft Word può salvare qualsiasi documento in formato RTF, conservando tutto il formato. Pensa al documento Word più stanco che tu abbia mai visto, usando la struttura della tabella più contorta; Immagina che qualcuno lo salva come RTF e ti chiede di convertirlo in TESTO! –

+0

Ok, ci andrò. Ci sono 2 problemi che dovrebbero essere risolti in qualche altro modo: ho bisogno di cercare in un campo DB rtf (per questo il trucco che sto usando è cercare la stringa nel testo rtf, non è il trucco eprfect ma funziona tipicamente se alla ricerca di singole parole), ho bisogno di restituire "come testo" in una griglia il contenuto di molti campi rtf (qui la soluzione sta restituendo il testo formattato rtf). Ovviamente un'alternativa potrebbe salvare anche un campo di testo, quindi per ogni rtf che salvo, salverò anche la versione solo testo, può essere un buon approccio in una nuova applicazione. – LaBracca

0

La pagina

  • http://www.delphipraxis.net/152766-rtf-nach-html.html per alcuni puntatori a componenti, biblioteche e altre fonti per convertitori RTF, alcuni di essi includono un RTF opzione di conversione di testo a.

  • ScroogeXHTML, una libreria per la conversione da RTF a HTML/XHTML, potrebbe essere utile. Supporta un sottoinsieme dello standard RTF ed è facile da personalizzare. Ha un'opzione di formato di esportazione PlainText. Nota: sono l'autore di ScroogeXHTML per Delphi/ScroogeXHTML per la piattaforma Java. È un prodotto commerciale

Problemi correlati