Frage

Ich versuche das zu verstehen RTF 1.9.1 Spezifikationsdokument aber #PCDATA (Text ohne Kontrollwörter) verwirrt mich.Unten finden Sie einen Beispielcode, der zeigt, was ich nicht verstehe.Beachten Sie, dass der folgende Text falsch formatiert ist.Ich habe es formatiert, damit es schöner aussieht.

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

Die Spezifikation sagt:

Wenn das Zeichen etwas anderes als eine öffnende geschweifte Klammer ({), schließende geschweifte Klammer (}), ein umgekehrter Schrägstrich (\) oder ein CRLF (Wagenrücklauf / Zeilenvorschub) ist, geht der Leser davon aus, dass es sich bei dem Zeichen um einfachen Text handelt, und schreibt das Zeichen in das aktuelle Ziel unter Verwendung der aktuellen Formatierungseigenschaften.

Wenn ich der obigen Spezifikation folgen würde, würde ich am Ende schreiben Times New Roman zum Dokument.Woher soll ein Parser wissen, ob er auf #PCDATA oder Dokumenttext gestoßen ist?

War es hilfreich?

Lösung

Die Antwort finden Sie auf Seite 9 der RTF 1.9.1-Spezifikation.

Bestimmte Steuerwörter, die als Ziele bezeichnet werden, markieren den Beginn einer Sammlung verwandter Texte, die an einer anderen Position oder einem anderen Ziel innerhalb des Dokuments erscheinen könnten.Ziele können auch Text enthalten, der verwendet wird, aber im Dokument überhaupt nicht angezeigt wird.

In dem Beispiel, das ich in der Frage angegeben habe, ist fonttbl ein Zielsteuerwort, was bedeutet, dass der Text nicht im Dokument angezeigt wird.Auf Seite 11 der Spezifikation ist eine Liste von Beispielsteuerwörtern angegeben, die das Ziel ändern:

Beispiele für Steuerwörter, die das Ziel ändern, sind \Fußnote, \Header, \Fußzeile, \pikt, \INFO, \fonttbl, \stilvorlage, und \farbebl.

Es gibt noch viele mehr, aber das sind die wichtigsten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top