2009-02-27 30 views
16

Tengo en mi base de datos una columna que contiene texto en formato RTF.Obtener texto sin formato de un texto RTF

¿Cómo puedo obtener solo el texto sin formato, usando C#?

Gracias: D

+0

[Aquí hay otra pregunta] (http://stackoverflow.com/questions/188545/regular-expression-for-extracting-text-from-an-rtf-string) que analiza la forma de la expresión regular. – dkretz

Respuesta

28

Microsoft proporciona an example donde básicamente se pegan el texto RTF en un RichTextBox y luego leer la propiedad .Text ... se siente un tanto kludgy, pero funciona.

static public string ConvertToText(string rtf) 
{ 
    using(RichTextBox rtb = new RichTextBox()) 
    { 
     rtb.Rtf = rtf; 
     return rtb.Text; 
    } 
} 
+1

Esto siempre me molestó. Además, tienes que hacer esto en un hilo STA, que generalmente se mezcla con el modelo de subprocesamiento de la mayoría de los programas. – Will

+0

@Will: No estaba diciendo que era la mejor manera ... –

+0

Después de haber examinado el código subyacente de RichTextBox ... sí, querrás usarlo porque es una bestia compleja. –

0

Si quiere una versión de código puro, puede analizar el rtf usted mismo y conservar solo los bits de texto. Es un poco de trabajo, pero no muy difícil: los archivos RTF tienen una sintaxis muy simple. Read about it in the RTF spec.

+0

, sí, hasta que llegue a las tablas con columnas :) Pero el formato simple en negrita/cursiva es fácil. – crashmstr

+0

Buen punto. El diablo está en los detalles. –

Cuestiones relacionadas