El formato de texto enriquecido (a menudo abreviado como RTF ) es un formato de archivo de documentos propietario [6] [7] [8] con especificaciones publicadas desarrollado por Microsoft Corporation desde 1987 hasta 2008 para el intercambio de documentos entre plataformas con productos de Microsoft. Antes de 2008, Microsoft publicó especificaciones actualizadas para RTF con revisiones importantes de las versiones de Microsoft Word y Office .
La mayoría de los procesadores de texto pueden leer y escribir algunas versiones de RTF. [9] Existen varias revisiones diferentes de la especificación RTF; la portabilidad de los archivos dependerá de la versión de RTF que se utilice. [7] [10]
RTF no debe confundirse con texto enriquecido [11] o su predecesor Rich Text, [12] [13] o con RFT-DCA (Revisable Format Text-Document Content Architecture) de IBM , ya que son especificaciones diferentes.
Richard Brodie , Charles Simonyi y David Luebbert, miembros del equipo de desarrollo de Microsoft Word , desarrollaron el formato RTF original a mediados y finales de la década de 1980. El primer lector y escritor de RTF se lanzó en 1987 como parte de Microsoft Word 3.0 para Macintosh , que implementó la especificación RTF versión 1.0. Todas las versiones posteriores de Microsoft Word para Macintosh, así como todas las versiones de Windows, pueden leer y escribir en formato RTF.
Microsoft mantiene el formato RTF. La versión final fue la 1.9.1 en 2008, que implementó características de Office 2007. Microsoft ha dejado de realizar mejoras a la especificación RTF, por lo que las características nuevas de Word 2010 o una versión posterior no se guardarán correctamente en formato RTF. [14] Microsoft no prevé más actualizaciones de RTF, pero ha manifestado su disposición a considerar modificaciones editoriales y otras modificaciones no sustanciales de la especificación RTF durante un período de votación asociado a la ISO/IEC 29500. [15]
Los archivos RTF se utilizaron para producir archivos de ayuda de Windows , aunque desde entonces han sido reemplazados por archivos de ayuda HTML compilados de Microsoft .
Se programa utilizando grupos, una barra invertida, una palabra de control y un delimitador. Los grupos están contenidos entre llaves ({}) e indican qué atributos se deben aplicar a un texto determinado.
La barra invertida (\) introduce una palabra de control, que es un comando programado específicamente para RTF. Las palabras de control pueden tener ciertos estados en los que están activas. Estos estados se representan mediante números. Por ejemplo,
\b0
\b1
\i0
\i1
\ul0
\ul1
\sub0
\sub1
\superscript0
\superscript1
Un delimitador es una de tres cosas:
A modo de ejemplo, el siguiente código RTF
{ \rtf 1 \ansi { \fonttbl\f 0 \fswiss Helvetica; } \f 0 \pard Este es un texto { \b negrita } . \par }
Se traduciría de la siguiente manera:
Éste es un texto en negrita .
Un archivo RTF estándar solo puede constar de caracteres ASCII de 7 bits , pero puede usar secuencias de escape para codificar otros caracteres. [31] Los dos escapes de caracteres son escapes de página de códigos y, a partir de RTF 1.5, escapes Unicode . En un escape de página de códigos, dos dígitos hexadecimales después de una barra invertida y un apóstrofo de máquina de escribir denotan un carácter tomado de una página de códigos de Windows. Por ejemplo, si la página de códigos está configurada en Windows-1256 , la secuencia \'c8
codificará la letra árabe bāʼ ب. También es posible especificar un "Conjunto de caracteres" en el preámbulo del documento RTF y asociarlo a un encabezado. Por ejemplo, el preámbulo tiene el texto \f3\fnil\fcharset128
, luego, en el cuerpo del documento, el texto \f3\'bd\'f0
representará el punto de código 0xbd 0xf0
del Conjunto de caracteres 128 (que corresponde a la página de códigos Shift-JIS ), que codifica "金".
Para un escape Unicode, se utiliza la palabra de control \u
, seguida de un entero con signo de 16 bits que corresponde al número de unidad de código Unicode UTF-16. Para beneficio de los programas sin soporte Unicode, esto debe ir seguido de la representación más cercana de este carácter en la página de códigos especificada. Por ejemplo, \u1576?
daría la letra árabe bāʼ ب, pero indica que los programas más antiguos que no soportan Unicode deberían representarla como un signo de interrogación.
La palabra de control \uc0
se puede utilizar para indicar que las secuencias de escape Unicode posteriores dentro del grupo actual no especifican el carácter de sustitución.
Hasta la versión 1.5 de la especificación RTF publicada en 1997, RTF solo manejaba caracteres de 7 bits directamente y caracteres de 8 bits codificados como hexadecimales (usando \'xx
). Sin embargo, desde RTF 1.5, las palabras de control RTF generalmente aceptan números de 16 bits con signo como argumentos. Los valores Unicode mayores que 32767 deben expresarse como números negativos. [25] Si un carácter Unicode está fuera de BMP , se codifica con un par sustituto. El soporte para Unicode se realizó debido a cambios en el manejo de texto en Microsoft Word: Microsoft Word 97 es una aplicación parcialmente habilitada para Unicode y maneja texto usando el esquema de codificación de caracteres Unicode de 16 bits . [25] Microsoft Word 2000 y versiones posteriores son aplicaciones habilitadas para Unicode que manejan texto usando el esquema de codificación de caracteres Unicode de 16 bits. [3]
Debido a que los archivos RTF son generalmente texto sin formato ASCII de 7 bits , se pueden transmitir fácilmente entre sistemas operativos basados en PC. Los convertidores que se comunican con Microsoft Word para MS Windows o Macintosh generalmente esperan la transferencia de datos como caracteres de 8 bits y datos binarios que pueden contener cualquier valor de 8 bits. [29]
RTF es un formato de datos para guardar y compartir documentos, no un lenguaje de marcado ; no está pensado para una escritura intuitiva y sencilla. [33] [34] No obstante, a diferencia de muchos formatos de procesamiento de texto, el código RTF puede ser legible por humanos . Cuando un archivo RTF que contiene principalmente caracteres latinos sin diacríticos se ve como un archivo de texto sin formato, el texto ASCII subyacente es legible, siempre que el autor haya mantenido un formato conciso.
Cuando se lanzó el formato RTF, la mayoría de los procesadores de texto utilizaban formatos de archivo binarios; por ejemplo, Microsoft Word utilizaba el formato de archivo .DOC . El formato RTF era único por su control de formato simple, que permitía que programas que no admitían RTF, como el Bloc de notas de Microsoft, abrieran y proporcionaran archivos legibles. Hoy en día, la mayoría de los procesadores de texto han migrado a formatos de archivo basados en XML (Word ha cambiado al formato de archivo .docx ). De todos modos, estos archivos contienen grandes cantidades de código de formato, por lo que a menudo son diez o más veces más grandes que el texto sin formato correspondiente. [35] [33]
Para que RTF cumpla con el estándar, los caracteres que no sean ASCII deben ser escapados. Por lo tanto, incluso con un formato conciso, el texto que utiliza ciertos guiones y comillas es menos legible. Los idiomas latinos con muchos diacríticos son particularmente difíciles de leer en RTF, ya que dan como resultado sustituciones como \'f1 por ñ y \'e9 por é . Los alfabetos no latinos son ilegibles en RTF: \u21563, por ejemplo, se utiliza para吻. Desde el principio, RTF también ha admitido objetos incrustados OLE de Microsoft y objetos de suscriptor de Macintosh Edition Manager, que no son legibles para humanos.
La mayoría de los programas de procesamiento de textos admiten la importación y exportación de formato RTF para algunas especificaciones RTF o la edición directa, lo que lo convierte en un formato "común" entre programas de procesamiento de textos y sistemas operativos que de otro modo serían incompatibles. La mayoría de las aplicaciones que leen archivos RTF ignoran silenciosamente las palabras de control RTF desconocidas. [36] Estos factores contribuyen a su interoperabilidad , aunque sigue dependiendo de la versión específica de RTF que se utilice. [7] Hay varios dialectos RTF diseñados conscientemente o nacidos accidentalmente. [36]
RTF es el lenguaje de marcado interno que utiliza Microsoft Word. [33] Desde 1987, los archivos RTF se pueden transferir de un lado a otro entre muchos sistemas informáticos antiguos y nuevos (y ahora a través de Internet), a pesar de las diferencias entre los sistemas operativos y sus versiones. Esto lo convierte en un formato útil para documentos de texto con formato básico, como manuales de instrucciones, currículums, cartas y documentos informativos modestos. Estos documentos, como mínimo, admiten el formato de texto en negrita, cursiva y subrayado. También suelen admitir texto alineado a la izquierda, al centro y a la derecha, especificaciones de fuentes y márgenes de documento.
Los valores predeterminados de fuente y márgenes, los ajustes preestablecidos de estilo y otras funciones varían según los valores predeterminados del programa. También puede haber incompatibilidades entre diferentes versiones de RTF, por ejemplo, entre RTF 1.0 1987 y especificaciones posteriores, o entre RTF 1.0–1.4 y RTF 1.5+ en el uso de caracteres Unicode. [37] [38] [39] Y aunque RTF admite metadatos como título y autor, no todas las implementaciones lo admiten. No obstante, el formato RTF es lo suficientemente consistente como para ser considerado altamente portátil y aceptable para uso multiplataforma .
Los objetos OLE (Object Linking and Embedding) de Microsoft y los objetos de suscripción de Macintosh Edition Manager permiten la incrustación de otros archivos dentro del RTF, como tablas o gráficos de aplicaciones de hojas de cálculo. Sin embargo, dado que estos objetos no son ampliamente compatibles con los programas para ver o editar archivos RTF, también limitan la interoperabilidad de RTF. [40] [41] [42] [43] [44] Si no hay disponible un software que comprenda un objeto OLE en particular, el objeto se muestra utilizando una imagen del objeto que está incrustada junto con él. [45] [46]
RTF admite la inclusión de tipos de imágenes JPEG, PNG, Enhanced Metafile (EMF), Windows Metafile (WMF), Apple PICT, mapas de bits dependientes del dispositivo de Windows, mapas de bits independientes del dispositivo de Windows y metarchivos de OS/2 en formato hexadecimal (predeterminado) o binario en un archivo RTF. Sin embargo, no todos estos tipos de imágenes son compatibles con todos los lectores RTF. Cuando se abre un documento RTF en un software que no admite el tipo de imagen de una imagen insertada, la imagen no se muestra. Los lectores RTF generalmente convierten una imagen insertada en un tipo de imagen no compatible en una imagen de un tipo compatible, o no incluyen ninguna imagen.
Para una mejor compatibilidad con los productos de Microsoft, algunos escritores de RTF incluyen la misma imagen en dos tipos de imagen diferentes en un archivo RTF: un tipo de imagen compatible para mostrar y una copia WMF sin comprimir de la imagen original para mejorar la compatibilidad con algunas aplicaciones de Microsoft como Wordpad. [47]
Este método aumenta drásticamente el tamaño del archivo RTF. La especificación RTF no requiere este método y varias implementaciones no incluyen la copia WMF (por ejemplo, Abiword o Ted).
Para Microsoft Word, también es posible establecer un valor de registro específico ("ExportPictureWithMetafile=0") para evitar que Word guarde la copia WMF. [47]
RTF admite la incorporación de fuentes utilizadas en el documento, pero esta característica no es ampliamente compatible en las implementaciones de software. [48] [49] [50]
RTF también admite nombres de familias de fuentes genéricas utilizadas para la sustitución de fuentes : romana ( serif ), suiza ( sans-serif ), moderna ( monoespaciada ), script , decorativa y técnica . [19] Esta característica tampoco es ampliamente compatible.
Desde RTF 1.0, la especificación RTF ha admitido anotaciones/comentarios en documentos. [19] La especificación RTF 1.7 definió algunas características nuevas para las anotaciones, incluida la marca de fecha (anteriormente solo había "marca de tiempo") y los padres de las anotaciones. [27] Cuando se abre un documento RTF con anotaciones en una aplicación que no admite anotaciones RTF, las anotaciones no se muestran. De manera similar, cuando un documento con anotaciones se guarda como RTF en una aplicación que no admite anotaciones RTF, las anotaciones no se conservan en el archivo RTF. Algunas implementaciones, como Abiword (desde la versión 2.8) e IBM Lotus Symphony (hasta la versión 1.3), pueden ocultar las anotaciones de forma predeterminada o requerir alguna acción del usuario para mostrarlas.
La especificación RTF también admite notas al pie, que son ampliamente admitidas en las implementaciones de RTF (por ejemplo, en OpenOffice.org, Abiword, KWord, Ted, pero no en Wordpad). Las notas al final se implementan como una variación de las notas al pie, por lo que las aplicaciones que admiten notas al pie pero no notas al final presentarán una nota al final como una nota al pie.
Los productos de Microsoft no admiten comentarios en pies de página, notas al pie o encabezados. De manera similar, los productos de Microsoft no admiten notas al pie en encabezados, pies de página o comentarios. Insertar un comentario o una nota al pie en uno de estos contextos no permitidos puede provocar que el documento se dañe. [29]
La especificación RTF 1.2 definió el uso de objetos de dibujo, conocidos como formas, como rectángulos, elipses, líneas, flechas y polígonos. La especificación RTF 1.5 introdujo muchas palabras de control nuevas para objetos de dibujo. [25]
Sin embargo, muchas implementaciones de RTF, como Apache OpenOffice , no admiten objetos de dibujo [51] (aunque sí son compatibles con LibreOffice 4.0 en [52] ) o Abiword. [53] Las aplicaciones que no admiten objetos de dibujo RTF no muestran ni guardan las formas. Algunas implementaciones tampoco mostrarán ningún texto dentro de los objetos de dibujo. [54] [55]
A diferencia del formato DOC de Microsoft Word, así como de los formatos más nuevos Office Open XML y OpenDocument , RTF no admite macros . Por este motivo, a menudo se recomendaba RTF en lugar de esos formatos cuando la propagación de virus informáticos a través de macros era una preocupación. Sin embargo, tener la extensión .RTF no garantiza un archivo seguro, ya que Microsoft Word abrirá archivos DOC estándar renombrados con una extensión RTF y ejecutará las macros contenidas como de costumbre. Se requiere el examen manual de un archivo en un editor de texto sin formato como el Bloc de notas , o el uso del file
comando en sistemas similares a UNIX , para determinar si un archivo sospechoso es realmente RTF o no. [9] [56] Habilitar la opción "Confirmar conversión de formato de archivo al abrir" de Word también puede ayudar al advertir que un documento que se abre está en un formato que no coincide con el formato implícito por la extensión del archivo y dar la opción de cancelar la apertura de ese archivo. Un exploit que ataca una vulnerabilidad fue parcheado en Microsoft Word en abril de 2015. [57]
Desde 2014 existen archivos RTF de malware que incorporan exploits OpenXML . [58]
Cada implementación de RTF generalmente implementa solo algunas versiones o subconjuntos de la especificación RTF. [7] Muchos de los convertidores RTF disponibles no pueden comprender todas las características nuevas de las últimas especificaciones RTF. [37] [59]
El editor WordPad de Microsoft Windows crea archivos RTF de forma predeterminada. En su momento, el formato de archivo predeterminado era Microsoft Word 6.0, pero la compatibilidad con escritura para documentos de Word (.doc) se eliminó en una actualización de seguridad. La compatibilidad con lectura también se eliminó en Windows 7. WordPad no admite algunas características RTF, como encabezados y pies de página. [60] Sin embargo, WordPad puede leer y guardar muchas características RTF que no puede crear, incluidas tablas, tachado, superíndice, subíndice, colores "adicionales", colores de fondo de texto, listas numeradas, sangría derecha o izquierda, enlaces de cuasi-hipertexto y URL, y varios espaciados entre líneas. RTF también es el formato de datos para "controles de texto enriquecido" en las API de MS Windows. [33]
El editor de texto predeterminado para macOS , TextEdit , también puede ver, editar y guardar archivos RTF, así como archivos RTFD , y utiliza el formato como predeterminado. A partir de julio de 2009, TextEdit tiene una capacidad limitada para editar márgenes de documentos RTF. Los programas de procesamiento de textos de Mac mucho más antiguos, como MacWrite y WriteNow, tenían las mismas capacidades RTF que TextEdit.
Los siguientes procesadores de texto gratuitos y de código abierto intentan trabajar con el formato de archivo RTF de Microsoft; consulte el párrafo de crítica a continuación: AbiWord , Apache OpenOffice , Bean , Calligra , Collabora Online y LibreOffice .
Scrivener utiliza archivos RTF individuales para todos los archivos de texto que componen un "proyecto" determinado.
La aplicación gratuita de SIL International para desarrollar y publicar diccionarios utiliza RTF como su formato de salida de documento más común. Los archivos RTF producidos por Toolbox están diseñados para usarse en Microsoft Word , pero también pueden usarse en otros procesadores de texto compatibles con RTF.
RTF se puede utilizar en algunos lectores de libros electrónicos debido a su interoperabilidad, [61] simplicidad y bajos requisitos de procesamiento de CPU.
El script de código abierto rtf2xml puede convertir parcialmente RTF a XML. [62] [63]
GNU UnRTF es un programa de código abierto para convertir RTF en HTML, LaTeX, macros troff y otros formatos. pyth es una biblioteca Python para crear y convertir documentos en formato RTF, XHTML y PDF. Ruby RTF es un proyecto para crear contenido de texto enriquecido mediante Ruby . RaTFink es una biblioteca de rutinas Tcl, software libre, para generar salida RTF y un script Cost para convertir SGML a RTF. RTF::Writer es un módulo Perl para generar documentos RTF. PHPRtfLite es una API que permite a los desarrolladores crear documentos RTF con PHP . Pandoc es un conversor de documentos de código abierto con múltiples formatos de salida, incluido RTF. RTFGen es un proyecto para crear documentos RTF mediante PHP puro . rtf.js es una biblioteca basada en JavaScript para renderizar documentos RTF en HTML.
La herramienta de línea de comandos de macOS textutil puede convertir archivos entre formatos rtf, rtfd, text, doc, docx, wordml, odt y webarchive. [64] El editor Ted también puede convertir archivos RTF a formato HTML y PS.
El formato de texto enriquecido era el formato de archivo estándar para documentos de texto en aplicaciones desarrolladas para Microsoft Windows. Inicialmente, Microsoft no hizo pública la especificación RTF, lo que dificultó a los competidores desarrollar funciones de conversión de documentos en sus aplicaciones. Como los desarrolladores de Microsoft tenían acceso a la especificación, las aplicaciones de Microsoft tenían una mejor compatibilidad con el formato. Además, cada vez que Microsoft cambiaba la especificación RTF, las propias aplicaciones de Microsoft tenían una ventaja en el tiempo de comercialización, porque los competidores tenían que volver a desarrollar sus aplicaciones después de estudiar la versión más nueva del formato.
Novell alegó que las prácticas de Microsoft eran anticompetitivas en su denuncia antimonopolio de 2004 contra Microsoft. [65] [66]
Al igual que ".doc", RTF es un formato de archivo propietario, pero ha sido diseñado para que sea más compatible y transferible.
Existen muchas revisiones diferentes del formato de texto enriquecido patentado por Microsoft y la portabilidad de los archivos dependerá de la versión de RTF que se utilice.
Existen muchas revisiones diferentes del formato de texto enriquecido patentado por Microsoft y la portabilidad de los archivos dependerá de la versión de RTF que se utilice.