Pregunta

En una aplicación de consola C# tengo la necesidad de extraer el texto de una cadena RTF, agregarle más texto y luego convertirlo nuevamente a RTF.Pude hacer esto usando la clase System.Windows.Forms.RichTextBox, pero me parece un poco extraño usar un control de Formularios en una aplicación que no es de Formularios.¿Alguna mejor manera de hacer esto?

¿Fue útil?

Solución

Consulte la discusión sobre este tema:

Limpiar texto RTF

Otros consejos

Hacer cualquier cosa con RTF es bastante difícil a menos que estés usando los formularios de Windows.Como se indicó anteriormente, utilizar formularios es la forma más sencilla de hacerlo.

Podrías escribir algo tú mismo, pero la especificación RTF es bastante complicada.
http://www.biblioscape.com/rtf15_spec.htm

O podría utilizar un objeto de conversión DLL/ActiveX del cual hay un gran número disponible.http://www.sautinsoft.com/

O bien, si hace esto desde Linux, también hay herramientas disponibles.Una mirada superficial arroja UnRTFhttp://www.gnu.org/software/unrtf/unrtf.html

No he incluido elementos para volver a convertir el texto a RTF porque creo que la especificación RTF trata y formatea el texto correctamente.

Creo que deberías deshacerte de ese sentimiento de "raro".No tiene nada de extraño.

Depende de lo que quieras decir con "mejor".Ya estás utilizando la forma más sencilla y sencilla de hacerlo.

No hay nada de malo en utilizar un control de interfaz de usuario en una aplicación de consola o incluso en una aplicación web.Los controles de Windows son parte de .NET Framework, también podría usarlos.Estos controles no necesitan estar alojados en "formularios" para funcionar.

Reinventar la rueda, usar DLL/ActiveX/OCX y usar Linux simplemente no son respuestas prácticas a su pregunta.La mejor manera es... hacer lo que sabes.En realidad, existe un beneficio de rendimiento y mantenimiento al utilizar métodos de marco existentes y luego utilizar las alternativas sugeridas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top