Question

J'essaie de comprendre le Document de spécification RTF 1.9.1 mais #PCDATA (texte sans mots de contrôle) me confond.Vous trouverez ci-dessous un exemple de code pour montrer ce que je ne comprends pas.Notez que le texte ci-dessous est mal formaté.Je l'ai formaté pour le rendre plus joli.

{
    \fonttbl
    {
        \f0
        \fbidi 
        \froman
        \fcharset0
        \fprq2
        {
            \*
            \panose 
            02020603050405020304
        }
        Times New Roman;
    }
}

Le cahier des charges dit :

Si le caractère est autre chose qu'une accolade ouvrante ({), une accolade fermante (}), une barre oblique inverse (\) ou un CRLF (retour chariot/saut de ligne), le lecteur suppose que le caractère est du texte brut et l'écrit dans la destination actuelle en utilisant les propriétés de formatage actuelles.

Si je devais suivre la spécification ci-dessus, je finirais par écrire Times New Roman au document.Comment un analyseur est-il censé savoir s'il a rencontré #PCDATA ou le texte d'un document ?

Était-ce utile?

La solution

La réponse se trouve à la page 9 de la spécification RTF 1.9.1.

Certains mots de contrôle, appelés destinations, marquent le début d'une collection de textes associés qui pourraient apparaître à une autre position, ou destination, dans le document.Les destinations peuvent également inclure du texte utilisé mais qui n'apparaît pas du tout dans le document.

Dans l'exemple que j'ai donné dans la question, fonttbl est un mot de contrôle de destination signifiant que le texte n'apparaît pas dans le document.À la page 11 de la spécification, une liste d'exemples de mots de contrôle qui modifient la destination est donnée :

Des exemples de mots de contrôle qui changent de destination sont ote de bas de page, \entête, \bas de page, \pict, \Info, \fonttbl, \feuille de style, et \colortbl.

Il y en a bien d’autres mais ce sont les principaux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top