Formato de texto enriquecido
El formato de texto enriquecido (a menudo abreviado RTF) es un formato de archivo de documento patentado con especificaciones publicadas desarrollado por Microsoft Corporation desde 1987 hasta 2008 para el intercambio de documentos multiplataforma 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. Hay varias revisiones diferentes de la especificación RTF; la portabilidad de los archivos dependerá de la versión de RTF que se utilice.
RTF no debe confundirse con texto enriquecido o su predecesor Rich Text, ni con IBM's RFT-DCA (Revisable Format Text-Document Content Architecture), ya que se trata de especificaciones diferentes.
Historia
Richard Brodie, Charles Simonyi y David Luebbert, miembros del equipo de desarrollo de Microsoft Word, desarrollaron el RTF original entre mediados y fines de la década de 1980. El primer lector y escritor RTF se envió 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 RTF. La versión final fue 1.9.1 en 2008, que implementó funciones de Office 2007. Microsoft ha dejado de realizar mejoras en la especificación RTF, por lo que las funciones nuevas de Word 2010 o una versión posterior no se guardarán correctamente en RTF. Microsoft no prevé más actualizaciones de RTF, pero ha declarado que está dispuesto a considerar modificaciones editoriales y otras modificaciones no sustanciales de la especificación RTF durante un período de votación ISO/IEC 29500 asociado.
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.
Versión RTF | Fecha de publicación | Microsoft Versión de Word | MS Word fecha de lanzamiento | Notas |
---|---|---|---|---|
1.0 | 1987 | Microsoft Word 3 | 1987 | La última revisión llegó en junio de 1992. La revisión de 1992 definió soporte para objetos de Microsoft Object Linking y Embedding (OLE) y objetos de suscriptor Macintosh Edition Manager. También apoyó la inclusión de los tipos de imagen de Windows Metafile, PICT, bitmap dependiente de dispositivos Windows, bitmap independiente de dispositivos Windows y OS/2 Metafile en RTF. |
1.1 | Microsoft Word 4 | 1989 | Permitido para la incrustación de fuentes, que permite localizar datos de fuentes dentro del archivo. | |
1.2 | 1993 | Microsoft Word 5 | 1991 | |
1.3 | Enero de 1994 | Microsoft Word 6 | 1993 | 1/94 GC0165; para la independencia del dispositivo y la interoperabilidad, alentó a los bitmaps de incrustación dentro de Windows Metafiles, en lugar de utilizar bitmaps independientes del dispositivo de Windows o bitmaps dependientes del dispositivo de Windows. |
1.4 | Septiembre de 1995 | Microsoft Word 95/Word 7 | 1995 | |
1,5 | Abril de 1997 | Microsoft Word 97/Word 8 | 1997 | Presentado Unicode RTF, que soporta el esquema de codificación de caracteres Unicode de 16 bits; inclusión definida de los tipos de imagen PNG, JPEG y EMF en hexadecimal (por defecto) o formato binario en un archivo RTF. También contenía una especificación de RTF local japonesa llamada RTF-J para la versión japonesa de Word; RTF-J es algo diferente de la especificación RTF estándar. |
1.6 | Mayo de 1999 | Microsoft Word 2000/Word 9 | 1999 | Incluido Pocket Word y Exchange (utilizado en conversiones RTF-HTML). |
1.7 | Agosto de 2001 | Microsoft Word 2002/Word 10 | 2001 | 8/2001– Word 2002 RTF Especificación |
1.8 | Abril de 2004 | Microsoft Word 2003/Word 11 | 2003 | 10/2003– Word 2003 RTF Specification |
1.9.1 | 19. Marzo de 2008 (RTF 1.9 – publicado en enero de 2007) | Microsoft Word 2007/Word 12 | 2006 | Marcado XML permitido – Etiquetas XML personalizadas, SmartTags, elementos de matemáticas en un documento RTF, protección de contraseñas, elementos correspondientes a Office Open XML Ecma-376 Part 4 |
Sintaxis del código
Se programa mediante 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 cierto texto.
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 están representados por números. Por ejemplo,
b0
- indica que el texto de Bold está fuera
b1
- indica que el texto de Bold está en
Un delimitador es una de estas tres cosas:
- Un espacio
- Un dígito o un hifeno (por ejemplo -23, 23, 275)
- Un personaje que no sea un dígito o una letra (por ejemplo , /, })
Como ejemplo, el siguiente código RTF
{}rtf1ansi{}fonttblf0fswiss Helvetica;}f0pardEsto es algo. {}b negrita} texto.par }
se representaría de la siguiente manera:
Esto es algo. negrita texto.
Codificación de caracteres
Un archivo RTF estándar solo puede constar de caracteres ASCII de 7 bits, pero puede usar secuencias de escape para codificar otros caracteres. 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óstrofe 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 se establece 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 f3fnilfcharset128
, 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 "金".
Conjunto de caracteres RTF | Página | Descripción |
---|---|---|
0 | Windows-1252 | Alfabeto latino, Europa Occidental / América |
1 | 0 | Default Windows Página de código API para el sistema locale |
2 | 42 | Símbolo (PUA-mapped) conjunto de caracteres |
77 | 2 | Por defecto Macintosh-compatibilidad página de código para el sistema locale |
128 | Windows-932 | Japanese, Shift JIS (versión de Windows) |
129 | Windows-949 | Código de Hangul Coreano Unificado (extended Wansung) |
130 | Windows-1361 | Coreano, Johab (versión basada en ASCII) |
134 | Windows-936 | Chinese, GBK (extended GB 2312) |
136 | Windows-950 | Chino, Big5 |
161 | Windows-1253 | Griego |
163 | Windows-1254 | alfabeto latino, turco |
177 | Windows-1258 | Alfabeto latino, vietnamitas |
178 | Windows-1255 | Hebreo |
186 | Windows-1256 | Árabe |
204 | Windows-1257 | Báltico |
222 | Windows-1251 | Cirilo |
238 | Windows-1250 | Alfabeto latino, Europa Oriental |
255 | 1 | Página de código OEM predeterminado para el sistema locale |
Para un escape Unicode, se utiliza la palabra de control u
, seguida de un entero de 16 bits con signo que corresponde al número de unidad de código Unicode UTF-16. En beneficio de los programas sin compatibilidad con 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 son compatibles con Unicode deberían mostrarla como un signo de interrogación.
La palabra de control uc0
se puede utilizar para indicar que las secuencias de escape Unicode subsiguientes dentro del grupo actual no especifican el carácter de sustitución.
Hasta el lanzamiento de la versión 1.5 de la especificación RTF 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 superiores a 32767 deben expresarse como números negativos. 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. Microsoft Word 2000 y versiones posteriores son aplicaciones habilitadas para Unicode que manejan texto utilizando el esquema de codificación de caracteres Unicode de 16 bits.
Debido a que los archivos RTF suelen ser 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.
Legibilidad humana
RTF es un formato de datos para guardar y compartir documentos, no un lenguaje de marcado; no está diseñado para una escritura intuitiva y fácil. 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 signos 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ó RTF, la mayoría de los procesadores de texto usaban formatos de archivo binarios; Microsoft Word, por ejemplo, utilizó el formato de archivo.DOC. RTF era único en su control de formato simple que permitía que los programas no compatibles con 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 se han movido a formatos de archivo basados en XML (Word ha cambiado al formato de archivo.docx). Independientemente, 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.
Para cumplir con el estándar RTF, los caracteres que no sean ASCII deben escaparse. Por lo tanto, incluso con un formato conciso, el texto que usa ciertos guiones y comillas es menos legible. Los idiomas latinos con muchos signos diacríticos son particularmente difíciles de leer en RTF, ya que dan lugar a sustituciones como 'f1 por ñ y 'e9 por é. Las escrituras no latinas son ilegibles en RTF; u21563, por ejemplo, se usa para 吻. Desde el principio, RTF también admitió objetos incrustados de Microsoft OLE y objetos de suscriptor de Macintosh Edition Manager, que no son legibles por humanos.
Usos comunes e interoperabilidad
La mayoría del software de procesamiento de texto admite la importación y exportación de formato RTF para alguna especificación RTF o la edición directa, lo que lo convierte en un "común" formato entre el software de procesamiento de texto y los 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. Estos factores contribuyen a su interoperabilidad, aunque aún depende de la versión específica de RTF en uso. Hay varios dialectos RTF diseñados conscientemente o nacidos accidentalmente.
RTF es el lenguaje de marcado interno utilizado por Microsoft Word. Desde 1987, los archivos RTF se han podido 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ículos, cartas y documentos de información modestos. Estos documentos, como mínimo, admiten el formato de texto en negrita, cursiva y subrayado. Por lo general, también se admiten texto alineado a la izquierda, al centro ya la derecha, especificación de fuente y márgenes del documento.
Los valores predeterminados de fuente y margen, estilos preestablecidos y otras funciones varían según los valores predeterminados del programa. También puede haber incompatibilidades entre diferentes versiones de RTF, p. 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. Y aunque RTF admite metadatos como el título y el autor, no todas las implementaciones lo admiten. Sin embargo, el formato RTF es lo suficientemente consistente como para ser considerado altamente portátil y aceptable para uso multiplataforma.
Objetos
Los objetos de vinculación e incrustación de objetos de Microsoft (OLE) y los objetos de suscriptor de Macintosh Edition Manager permiten la incrustación de otros archivos dentro del RTF, como tablas o gráficos de la aplicación de hoja 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. Si el software que comprende un objeto OLE en particular no está disponible, el objeto se muestra usando una imagen del objeto que está incrustado junto con él.
Imágenes
RTF admite la inclusión de JPEG, PNG, metarchivo mejorado (EMF), metarchivo de Windows (WMF), PICT de Apple, mapa de bits dependiente del dispositivo Windows, mapa de bits independiente del dispositivo Windows y tipos de imágenes de metarchivo OS/2 en hexadecimal (predeterminado) o formato 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 escritores de RTF generalmente convierten una imagen insertada en un tipo de imagen no compatible a una en un tipo de imagen compatible, o no incluyen ninguna imagen.
Para una mejor compatibilidad con los productos de Microsoft, algunos escritores RTF incluyen la misma imagen en dos tipos de imágenes 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.
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.
Fuentes
RTF admite la incrustación de fuentes utilizadas en el documento, pero esta característica no es ampliamente compatible con las implementaciones de software.
RTF también admite nombres de familias de fuentes genéricas utilizadas para la sustitución de fuentes: roman (serif), Swiss (sans-serif), modern (monoespaciado), script, decorativo y técnico. Esta característica tampoco es ampliamente compatible.
Anotaciones
Desde RTF 1.0, la especificación RTF admite anotaciones/comentarios de documentos. La especificación RTF 1.7 definió algunas funciones nuevas para las anotaciones, incluida la marca de fecha (anteriormente solo había "marca de tiempo") y los padres de las anotaciones. 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 compatibles con 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, representará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. Del mismo modo, los productos de Microsoft no admiten notas al pie de página en encabezados, pies de página o comentarios. Insertar un comentario o una nota al pie en uno de estos contextos no permitidos puede resultar en un documento corrupto.
Dibujar objetos
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 dibujar objetos.
Sin embargo, muchas implementaciones de RTF, como Apache OpenOffice, no admiten objetos de dibujo (aunque sí lo son en LibreOffice 4.0) o Abiword. 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.
Preocupaciones de seguridad
A diferencia del formato DOC de Microsoft Word, así como de los nuevos formatos Office Open XML y OpenDocument, RTF no admite macros. Por esta razón, RTF a menudo se recomendaba 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 comando de archivo en sistemas similares a UNIX, para determinar si un archivo sospechoso es realmente RTF o no. Habilitar la opción "Confirmar conversión de formato de archivo al abrir" de Word La opción también puede ayudar advirtiendo que un documento que se está abriendo tiene un formato que no coincide con el formato implícito en la extensión del archivo y dando la opción de anular la apertura de ese archivo. Un exploit que atacaba una vulnerabilidad fue parcheado en Microsoft Word en abril de 2015.
Desde 2014, ha habido archivos RTF de malware que incorporan exploits OpenXML.
Implementaciones
Cada implementación de RTF generalmente implementa solo algunas versiones o subconjuntos de la especificación RTF. Muchos de los convertidores de RTF disponibles no pueden comprender todas las características nuevas de las últimas especificaciones de RTF.
El editor de WordPad en Microsoft Windows crea archivos RTF de forma predeterminada. Alguna vez tuvo como valor predeterminado el formato de archivo de Microsoft Word 6.0, pero la compatibilidad de escritura con documentos de Word (.doc) se eliminó en una actualización de seguridad. El soporte de lectura también se eliminó en Windows 7. WordPad no admite algunas funciones RTF, como encabezados y pies de página. Sin embargo, WordPad puede leer y guardar muchas funciones RTF que no puede crear, incluidas tablas, tachado, superíndice, subíndice, "extra" colores, colores de fondo del texto, listas numeradas, sangría derecha o izquierda, cuasi-hipertexto y enlace URL, y varios espacios entre líneas. RTF también es el formato de datos para "controles de texto enriquecido" en las API de MS Windows.
El editor de texto predeterminado para macOS, TextEdit, también puede ver, editar y guardar archivos RTF y RTFD, y usa 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 aplicación de procesamiento de texto de Mac mucho más antiguos, como MacWrite y WriteNow, tenían las mismas capacidades RTF que TextEdit.
Los procesadores de texto gratuitos y de código abierto AbiWord, Apache OpenOffice, Bean, Calligra, KWord, LibreOffice y NeoOffice pueden ver, editar y guardar archivos RTF. El formato RTF también se utiliza en el procesador de texto Ted.
Scrivener utiliza archivos RTF individuales para todos los archivos de texto que conforman un "proyecto" determinado.
La aplicación gratuita de SIL International para desarrollar y publicar diccionarios utiliza RTF como su forma más común de salida de documentos. Los archivos RTF producidos por Toolbox están diseñados para usarse en Microsoft Word, pero también pueden ser usados por otros procesadores de texto compatibles con RTF.
RTF se puede usar en algunos lectores de libros electrónicos debido a su interoperabilidad, simplicidad y bajos requisitos de procesamiento de CPU.
Bibliotecas y convertidores
La secuencia de comandos de código abierto rtf2xml puede convertir parcialmente RTF a XML.
GNU UnRTF es un programa de código abierto para convertir RTF en HTML, LaTeX, macros troff y otros formatos. pyth es una biblioteca de Python para crear y convertir documentos en formato RTF, XHTML y PDF. Ruby RTF es un proyecto para crear contenido de texto enriquecido a través de Ruby. RaTFink es una biblioteca de rutinas Tcl, software gratuito para generar salida RTF y un script Cost para convertir SGML a RTF. RTF::Writer es un módulo de Perl para generar documentos RTF. PHPRtfLite es una API que permite a los desarrolladores crear documentos RTF con PHP. Pandoc es un convertidor de documentos de código abierto con múltiples formatos de salida, incluido RTF. RTFGen es un proyecto para crear documentos RTF a través de PHP puro. rtf.js es una biblioteca basada en JavaScript para representar 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. El editor Ted también puede convertir archivos RTF a formato HTML y PS.
Crítica
El formato de texto enriquecido era el formato de archivo estándar para documentos basados en texto en aplicaciones desarrolladas para Microsoft Windows. Inicialmente, Microsoft no puso a disposición del público la especificación RTF, lo que dificulta que los competidores desarrollen funciones de conversión de documentos en sus aplicaciones. Debido a que 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 demanda antimonopolio de 2004 contra Microsoft.
Contenido relacionado
IBM 1620
Servidor macOS
PDP-11