Article de reference

Format de texte enrichi

Le format RTF (souvent abrégé en RTF ) est un format de fichier de document propriétaire dont les spécifications ont été publiées et qui a été développé par Microsoft Corporatio...

Le format RTF (souvent abrégé en RTF ) est un format de fichier de document propriétaire dont les spécifications ont été publiées et qui a été développé par Microsoft Corporation de 1987 à 2008 pour l'échange de documents entre plates-formes avec les produits Microsoft. Avant 2008, Microsoft a publié des spécifications mises à jour pour RTF avec des révisions majeures des versions Microsoft Word et Office .

La plupart des traitements de texte sont capables de lire et d'écrire certaines versions de RTF. Il existe plusieurs révisions différentes de la spécification RTF ; la portabilité des fichiers dépendra de la version de RTF utilisée.

Le format RTF ne doit pas être confondu avec le texte enrichi ou son prédécesseur Rich Text, le RFT-DCA (Revisable Format Text-Document Content Architecture) d'IBM , car il s'agit de spécifications différentes.

Histoire

Richard Brodie , Charles Simonyi et David Luebbert, membres de l' équipe de développement de Microsoft Word , ont développé le format RTF original entre le milieu et la fin des années 1980. Le premier lecteur et enregistreur RTF a été livré en 1987 dans le cadre de Microsoft Word 3.0 pour Macintosh , qui implémentait la spécification RTF version 1.0. Toutes les versions ultérieures de Microsoft Word pour Macintosh, ainsi que toutes les versions Windows, peuvent lire et écrire au format RTF.

Microsoft maintient le format RTF. La version finale était la 1.9.1 en 2008, qui implémentait des fonctionnalités d' Office 2007. Microsoft a arrêté d'améliorer la spécification RTF, de sorte que les nouvelles fonctionnalités de Word 2010 ou d'une version ultérieure ne seront pas enregistrées correctement au format RTF. Microsoft ne prévoit pas d'autres mises à jour du format RTF, mais a déclaré sa volonté d'envisager des modifications éditoriales et autres modifications non substantielles de la spécification RTF lors d'une période de vote ISO/IEC 29500 associée .

Les fichiers RTF ont été utilisés pour produire les fichiers d'aide Windows , bien qu'ils aient depuis été remplacés par les fichiers d'aide HTML compilés Microsoft .

Syntaxe du code

Il est programmé à l'aide de groupes, d'une barre oblique inverse, d'un mot de contrôle et d'un délimiteur. Les groupes sont contenus entre accolades ({}) et indiquent quels attributs doivent être appliqués à un texte donné.

La barre oblique inverse (\) introduit un mot de contrôle, qui est une commande spécifiquement programmée pour RTF. Les mots de contrôle peuvent avoir certains états dans lesquels ils sont actifs. Ces états sont représentés par des nombres. Par exemple,

\b0
indique que le texte en gras est désactivé
\b1
indique que le texte en gras est activé
\i0
indique que le texte en italique est désactivé
\i1
indique que le texte en italique est sur
\ul0
indique que le texte souligné est désactivé
\ul1
indique que le texte souligné est activé
\sub0
indique que le texte en indice est désactivé
\sub1
indique que le texte en indice est activé
\superscript0
indique que le texte en exposant est désactivé
\superscript1
indique que le texte en exposant est activé

Un délimiteur est l'une des trois choses suivantes :

  1. Un espace
  2. Un chiffre ou un trait d'union (par exemple -23, 23, 275)
  3. Un caractère autre qu'un chiffre ou une lettre (par exemple \, /, })

À titre d’exemple, le code RTF suivant

{  tf 1 \ansi { \fonttbl\f 0 \fswiss Helvetica; } \f 0 \pard Ceci est du texte { \b gras } . \par 
}

serait rendu comme suit :

C'est du texte en gras .

Codage des caractères

Un fichier RTF standard ne peut être constitué que de caractères ASCII 7 bits , mais peut utiliser des séquences d'échappement pour encoder d'autres caractères. Les deux échappements de caractères sont des échappements de page de code et, à partir de RTF 1.5, des échappements Unicode . Dans un échappement de page de code, deux chiffres hexadécimaux suivant une barre oblique inverse et une apostrophe de machine à écrire désignent un caractère extrait d'une page de code Windows. Par exemple, si la page de code est définie sur Windows-1256 , la séquence \'c8encodera la lettre arabe bāʼ ب. Il est également possible de spécifier un « jeu de caractères » dans le préambule du document RTF et de l'associer à un en-tête. Par exemple, le préambule contient le texte \f3\fnil\fcharset128, puis, dans le corps du document, le texte \f3\'bd\'f0représentera le point de code 0xbd 0xf0 du jeu de caractères 128 (qui correspond à la page de code Shift-JIS ), qui encode « 金 ».

Pour un échappement Unicode, le mot de contrôle \uest utilisé, suivi d'un entier signé de 16 bits qui correspond au numéro d'unité de code Unicode UTF-16. Pour les programmes sans prise en charge Unicode, ce mot doit être suivi de la représentation la plus proche de ce caractère dans la page de code spécifiée. Par exemple, \u1576?cela donnerait la lettre arabe bāʼ ب, mais indique que les programmes plus anciens qui ne prennent pas en charge Unicode doivent le restituer sous forme de point d'interrogation à la place.

Le mot de contrôle \uc0peut être utilisé pour indiquer que les séquences d'échappement Unicode suivantes dans le groupe actuel ne spécifient pas le caractère de substitution.

Jusqu'à la version 1.5 de la spécification RTF publiée en 1997, RTF ne traitait directement que les caractères 7 bits et les caractères 8 bits codés en hexadécimal (en utilisant \'xx). Cependant, depuis RTF 1.5, les mots de contrôle RTF acceptent généralement les nombres signés 16 bits comme arguments. Les valeurs Unicode supérieures à 32767 doivent être exprimées sous forme de nombres négatifs. Si un caractère Unicode est en dehors de BMP , il est codé avec une paire de substitution. La prise en charge d'Unicode a été réalisée en raison des modifications de gestion de texte dans Microsoft Word - Microsoft Word 97 est une application partiellement compatible Unicode et gère le texte à l'aide du schéma de codage de caractères Unicode 16 bits . Microsoft Word 2000 et les versions ultérieures sont des applications compatibles Unicode qui gèrent le texte à l'aide du schéma de codage de caractères Unicode 16 bits.

Les fichiers RTF étant généralement des fichiers texte brut ASCII 7 bits , ils peuvent être facilement transmis entre systèmes d'exploitation basés sur PC. Les convertisseurs qui communiquent avec Microsoft Word pour MS Windows ou Macintosh s'attendent généralement à un transfert de données sous forme de caractères 8 bits et de données binaires pouvant contenir n'importe quelle valeur 8 bits.

Lisibilité humaine

Le format RTF est un format de données permettant de sauvegarder et de partager des documents, et non un langage de balisage . Il n'est pas destiné à une saisie intuitive et facile. Néanmoins, contrairement à de nombreux formats de traitement de texte, le code RTF peut être lisible par l'homme . Lorsqu'un fichier RTF contenant principalement des caractères latins sans signes diacritiques est visualisé comme un fichier texte brut, le texte ASCII sous-jacent est lisible, à condition que l'auteur ait conservé un formatage concis.

Lorsque le format RTF a été publié, la plupart des traitements de texte utilisaient des formats de fichiers binaires ; Microsoft Word, par exemple, utilisait le format de fichier .DOC . Le format RTF était unique dans son contrôle de formatage simple qui permettait aux programmes non compatibles RTF comme le Bloc-notes de Microsoft d'ouvrir et de fournir des fichiers lisibles. Aujourd'hui, la plupart des traitements de texte sont passés aux formats de fichiers basés sur XML (Word est passé au format de fichier .docx ). Quoi qu'il en soit, ces fichiers contiennent de grandes quantités de code de formatage et sont donc souvent dix fois plus volumineux que le texte brut correspondant.

Pour être conforme à la norme RTF, les caractères non-ASCII doivent être échappés. Ainsi, même avec un formatage concis, le texte qui utilise certains tirets et guillemets est moins lisible. Les langues latines avec de nombreux signes diacritiques sont particulièrement difficiles à lire dans RTF, car elles entraînent des substitutions telles que \'f1 pour ñ et \'e9 pour é . Les écritures non latines sont illisibles dans RTF — \u21563, par exemple, est utilisé pour. Depuis le début, RTF prend également en charge les objets intégrés Microsoft OLE et les objets abonnés Macintosh Edition Manager, qui ne sont pas lisibles par l'homme.

Utilisations courantes et interopérabilité

La plupart des logiciels de traitement de texte prennent en charge l'importation et l'exportation au format RTF pour certaines spécifications RTF ou l'édition directe, ce qui en fait un format « commun » entre les logiciels de traitement de texte et les systèmes d'exploitation par ailleurs incompatibles. La plupart des applications qui lisent les fichiers RTF ignorent silencieusement les mots de contrôle RTF inconnus. Ces facteurs contribuent à son interopérabilité , bien qu'elle dépende toujours de la version RTF spécifique utilisée. Il existe plusieurs dialectes RTF conçus consciemment ou nés accidentellement.

RTF est le langage de balisage interne utilisé par Microsoft Word. Depuis 1987, les fichiers RTF peuvent être transférés entre de nombreux systèmes informatiques anciens et nouveaux (et maintenant via Internet), malgré les différences entre les systèmes d'exploitation et leurs versions. Cela en fait un format utile pour les documents texte formatés de base tels que les manuels d'instruction, les CV, les lettres et les documents d'information modestes. Ces documents prennent en charge au minimum le formatage de texte en gras, en italique et souligné. Sont également généralement pris en charge le texte aligné à gauche, au centre et à droite, la spécification des polices et les marges des documents.

Les valeurs par défaut des polices et des marges, les préréglages de style et d'autres fonctions varient en fonction des valeurs par défaut du programme. Il peut également y avoir des incompatibilités entre différentes versions de RTF, par exemple entre RTF 1.0 1987 et les spécifications ultérieures, ou entre RTF 1.0–1.4 et RTF 1.5+ dans l'utilisation des caractères Unicode. Et bien que RTF prenne en charge les métadonnées telles que le titre et l'auteur, toutes les implémentations ne le prennent pas en charge. Néanmoins, le format RTF est suffisamment cohérent pour être considéré comme hautement portable et acceptable pour une utilisation multiplateforme .

Objets

Les objets Microsoft Object Linking and Embedding (OLE) et les objets abonnés Macintosh Edition Manager permettent l'incorporation d'autres fichiers dans le RTF, tels que des tableaux ou des graphiques provenant d'une application de feuille de calcul. Cependant, comme ces objets ne sont pas largement pris en charge dans les programmes de visualisation ou d'édition de fichiers RTF, ils limitent également l'interopérabilité du RTF. Si aucun logiciel capable de comprendre un objet OLE particulier n'est disponible, l'objet est affiché à l'aide d'une image de l'objet qui est incorporée avec lui.

Photos

Le format RTF prend en charge l'inclusion des types d'images JPEG, PNG, Enhanced Metafile (EMF), Windows Metafile (WMF), Apple PICT, Windows device-dependent bitmap, Windows device-independent bitmap et OS/2 Metafile au format hexadécimal (par défaut) ou binaire dans un fichier RTF. Cependant, tous ces types d'images ne sont pas pris en charge par tous les lecteurs RTF. Lorsqu'un document RTF est ouvert dans un logiciel qui ne prend pas en charge le type d'image d'une image insérée, l'image ne s'affiche pas. Les rédacteurs RTF convertissent généralement une image insérée dans un type d'image non pris en charge en une image dans un type d'image pris en charge, ou n'incluent pas d'image du tout.

Pour une meilleure compatibilité avec les produits Microsoft, certains rédacteurs RTF incluent la même image dans deux types d'image différents dans un fichier RTF : un type d'image pris en charge à afficher et une copie WMF non compressée de l'image d'origine pour améliorer la compatibilité avec certaines applications Microsoft comme Wordpad.

Cette méthode augmente considérablement la taille du fichier RTF. La spécification RTF n'exige pas cette méthode et plusieurs implémentations n'incluent pas la copie WMF (par exemple Abiword ou Ted).

Pour Microsoft Word, il est également possible de définir une valeur de registre spécifique (« ExportPictureWithMetafile=0 ») pour empêcher Word d'enregistrer la copie WMF.

Polices de caractères

RTF prend en charge l'intégration des polices utilisées dans le document, mais cette fonctionnalité n'est pas largement prise en charge dans les implémentations logicielles.

RTF prend également en charge les noms de familles de polices génériques utilisés pour la substitution de polices : roman ( serif ), suisse ( sans-serif ), moderne ( monospace ), script , décoratif et technique . Cette fonctionnalité n'est pas non plus largement prise en charge.

Annotations

Depuis RTF 1.0, la spécification RTF prend en charge les annotations/commentaires de documents. La spécification RTF 1.7 a défini de nouvelles fonctionnalités pour les annotations, notamment l'horodatage (il n'y avait auparavant que l'« horodatage ») et les parents des annotations. Lorsqu'un document RTF avec des annotations est ouvert dans une application qui ne prend pas en charge les annotations RTF, les annotations ne sont pas affichées. De même, lorsqu'un document avec des annotations est enregistré au format RTF dans une application qui ne prend pas en charge les annotations RTF, les annotations ne sont pas conservées dans le fichier RTF. Certaines implémentations, comme Abiword (depuis la version 2.8) et IBM Lotus Symphony (jusqu'à la version 1.3), peuvent masquer les annotations par défaut ou nécessiter une action de l'utilisateur pour les afficher.

La spécification RTF prend également en charge les notes de bas de page, qui sont largement prises en charge dans les implémentations RTF (par exemple dans OpenOffice.org, Abiword, KWord, Ted, mais pas dans Wordpad). Les notes de fin sont implémentées comme une variante des notes de bas de page, de sorte que les applications qui prennent en charge les notes de bas de page mais pas les notes de fin afficheront une note de fin comme une note de bas de page.

Les produits Microsoft ne prennent pas en charge les commentaires dans les pieds de page, les notes de bas de page ou les en-têtes. De même, les produits Microsoft ne prennent pas en charge les notes de bas de page dans les en-têtes, les pieds de page ou les commentaires. L'insertion d'un commentaire ou d'une note de bas de page dans l'un de ces contextes non autorisés peut entraîner la corruption du document.

Dessiner des objets

La spécification RTF 1.2 définit l'utilisation d'objets de dessin, appelés formes, tels que des rectangles, des ellipses, des lignes, des flèches et des polygones. La spécification RTF 1.5 a introduit de nombreux nouveaux mots de contrôle pour les objets de dessin.

Cependant, de nombreuses implémentations RTF, telles qu'Apache OpenOffice , ne prennent pas en charge les objets de dessin (bien qu'ils soient pris en charge dans LibreOffice 4.0 sur ) ou Abiword. Les applications qui ne prennent pas en charge les objets de dessin RTF n'affichent pas ou n'enregistrent pas les formes. Certaines implémentations n'afficheront pas non plus de texte à l'intérieur des objets de dessin.

Problèmes de sécurité

Contrairement au format DOC de Microsoft Word, ainsi qu'aux formats Office Open XML et OpenDocument plus récents , le format RTF ne prend pas en charge les macros . Pour cette raison, le format RTF était souvent recommandé par rapport à ces formats lorsque la propagation de virus informatiques par le biais de macros était une préoccupation. Cependant, le fait d'avoir l'extension .RTF ne garantit pas un fichier sûr, car Microsoft Word ouvrira les fichiers DOC standard renommés avec une extension RTF et exécutera toutes les macros contenues comme d'habitude. L'examen manuel d'un fichier dans un éditeur de texte brut tel que le Bloc-notes , ou l'utilisation de la filecommande dans un système de type UNIX , est nécessaire pour déterminer si un fichier suspect est vraiment RTF. L'activation de l'option « Confirmer la conversion du format de fichier à l'ouverture » de Word peut également aider en avertissant qu'un document en cours d'ouverture est dans un format qui ne correspond pas au format impliqué par l'extension du fichier, et en donnant la possibilité d'abandonner l'ouverture de ce fichier. Un exploit attaquant une vulnérabilité a été corrigé dans Microsoft Word en avril 2015.

Depuis 2014, des fichiers RTF malveillants intègrent des exploits OpenXML .

Implémentations

Chaque implémentation RTF implémente généralement seulement certaines versions ou sous-ensembles de la spécification RTF. De nombreux convertisseurs RTF disponibles ne peuvent pas comprendre toutes les nouvelles fonctionnalités des dernières spécifications RTF.

L' éditeur WordPad de Microsoft Windows crée des fichiers RTF par défaut. Il utilisait autrefois le format de fichier Microsoft Word 6.0 par défaut, mais la prise en charge de l'écriture pour les documents Word (.doc) a été abandonnée dans une mise à jour de sécurité. La prise en charge de la lecture a également été abandonnée dans Windows 7. WordPad ne prend pas en charge certaines fonctionnalités RTF, telles que les en-têtes et les pieds de page. Cependant, WordPad peut lire et enregistrer de nombreuses fonctionnalités RTF qu'il ne peut pas créer, notamment les tableaux, les caractères barrés, les exposants, les indices, les couleurs « supplémentaires », les couleurs d'arrière-plan du texte, les listes numérotées, le retrait à droite ou à gauche, les liens quasi-hypertexte et URL, ainsi que divers interlignes. RTF est également le format de données pour les « contrôles de texte enrichi » dans les API MS Windows.

L'éditeur de texte par défaut pour macOS , TextEdit , peut également afficher, modifier et enregistrer des fichiers RTF ainsi que des fichiers RTFD , et utilise ce format par défaut. Depuis juillet 2009, TextEdit dispose d'une capacité limitée de modification des marges des documents RTF. Des programmes d'application de traitement de texte Mac beaucoup plus anciens, tels que MacWrite et WriteNow, avaient les mêmes capacités RTF que TextEdit.

Les traitements de texte gratuits et open source suivants tentent de fonctionner avec le format de fichier RTF de Microsoft, voir le paragraphe de critique ci-dessous. AbiWord , Apache OpenOffice , Bean , Calligra , Collabora Online et LibreOffice .

Scrivener utilise des fichiers RTF individuels pour tous les fichiers texte qui composent un « projet » donné.

L'application gratuite de SIL International pour le développement et la publication de dictionnaires utilise le format RTF comme format de sortie de document le plus courant. Les fichiers RTF produits par Toolbox sont conçus pour être utilisés dans Microsoft Word , mais peuvent également être utilisés par d'autres traitements de texte compatibles RTF.

Le format RTF peut être utilisé sur certains lecteurs de livres électroniques en raison de son interopérabilité, de sa simplicité et de ses faibles besoins de traitement CPU.

Bibliothèques et convertisseurs

Le script open source rtf2xml peut convertir partiellement RTF en XML.

GNU UnRTF est un programme open source pour convertir RTF en HTML, LaTeX, macros troff et autres formats. pyth est une bibliothèque Python pour créer et convertir des documents au format RTF, XHTML et PDF. Ruby RTF est un projet pour créer du contenu Rich Text via Ruby . RaTFink est une bibliothèque de routines Tcl, un logiciel libre, pour générer une sortie RTF, et un script Cost pour convertir SGML en RTF. RTF::Writer est un module Perl pour générer des documents RTF. PHPRtfLite est une API permettant aux développeurs de créer des documents RTF avec PHP . Pandoc est un convertisseur de documents open source avec plusieurs formats de sortie, dont RTF. RTFGen est un projet pour créer des documents RTF via PHP pur . rtf.js est une bibliothèque basée sur JavaScript pour restituer des documents RTF en HTML.

L'outil de ligne de commande macOS textutil peut convertir des fichiers entre les formats rtf, rtfd, text, doc, docx, wordml, odt et webarchive. L'éditeur Ted peut également convertir des fichiers RTF au format HTML et PS.

Critique

Le format RTF était le format de fichier standard pour les documents textuels dans les applications développées pour Microsoft Windows. Au départ, Microsoft n'avait pas rendu publique la spécification RTF, ce qui rendait difficile pour les concurrents de développer des fonctionnalités de conversion de documents dans leurs applications. Comme les développeurs de Microsoft avaient accès à la spécification, les applications de Microsoft étaient mieux compatibles avec le format. De plus, chaque fois que Microsoft modifiait la spécification RTF, les propres applications de Microsoft avaient une longueur d'avance en termes de délai de mise sur le marché, car les concurrents devaient redévelopper leurs applications après avoir étudié la nouvelle version du format.

Dans sa plainte antitrust de 2004 contre Microsoft, Novell a affirmé que les pratiques de Microsoft étaient anticoncurrentielles.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index