NRtfTree es una librería de funciones escrita íntegramente en C# y dirigida a facilitar el tratamiento estructurado de documentos con formato RTF.
El formato RTF (Rich Text Format) permite la creación de texto enriquecido en el que pueden insertarse una gran cantidad de elementos extra como imágenes, tablas, listas, hipervínculos y otras muchas características propias de cualquier procesador de texto actual.
Además, y éste es uno de los aspectos que más nos interesa, el RTF es el formato utilizado internamente por el control RichTextBox proporcionado por Microsoft en la plataforma .NET Este control permite incluir con suma facilidad en nuestras aplicaciones controles de edición de texto enriquecido. Sin embargo, no se proporcionan demasiadas facilidades a la hora de manipular el contenido RTF del control.
Las dos situaciones habituales cuando utilizamos el control RichTextBox serán:
En niguna de estas dos situaciones nos podrá ayudar demasiado la funcionalidad original del control y por tanto necesitamos de otros medios para afrontarlas.
En este punto es donde puede entenderse la utilidad de la librería que presento. NRtfTree permite analizar de forma automática un documento RTF y convertirlo a una estructura de datos interna manejable e intuitiva a través de la cual poder analizar y/o modificar el documento de una forma sencilla y eficaz sin tener que conocer a fondo los detalles del formato tratado.
La aproximación al problema utilizada en NRtfTree es muy similar a los modelos DOM y SAX utilizados con formatos como XML.
En el primero, modelo DOM, el documento RTF se cargará en una estructura en forma de árbol, que podrá recorrerse para analizar el contenido del documento o modificarse añadiendo o eliminando nodos para cambiar el contenido y aspecto del documento.
Por su parte, en el modelo SAX el documento RTF podrá analizarse de forma secuencial bajo un modelo basado en eventos, donde sólo habrá que implementar las actuaciones necesarias para tratar cada uno de los elementos leidos del documento RTF que sean relevantes para nuestra aplicación.
NRtfTree se encuentra aún en una fase muy temprana de su desarrollo y por ello la funcionalidad y estabilidad es aún limitada. Sin embargo, ya puede resultar muy útil para el tratamiento de documentos RTF no demasiado complejos.