RTF #pcdata vs Document Text
Domanda
Sto cercando di capire il RTF 1.9.1 SpecificaDocumento ma #pcdata (testo senza parole di controllo) mi ha confuso.Di seguito è riportato un codice di esempio per mostrare quello che non capisco.Si noti che il testo di seguito è formattato in modo errato.L'ho formattato per farlo sembrare più bello.
{
\fonttbl
{
\f0
\fbidi
\froman
\fcharset0
\fprq2
{
\*
\panose
02020603050405020304
}
Times New Roman;
}
}
.
Le specifiche dicono:
.Se il personaggio è altro che un brace di apertura ({), la chiusura del brace (}), il backslash (\) o un CRLF (feed return / line del carrello), il lettore presuppone che il carattere sia un testo normale e scrive il carattereil carattere alla destinazione corrente utilizzando le proprietà di formattazione corrente.
Se dovessi seguire le specifiche sopra, finirei per scrivere Times New Roman
al documento.In che modo un parser dovrebbe sapere se ha riscontrato #pcdata o testo del documento?
Soluzione
La risposta è a pagina 9 delle specifiche RTF 1.9.1.
.Alcune parole di controllo, denominate destinazioni, segnano l'inizio di una raccolta di testo correlato che potrebbe apparire in un'altra posizione o destinazione, all'interno del documento.Le destinazioni possono anche includere il testo utilizzato ma non appare all'interno del documento.
Nell'esempio ho dato nella domanda, Fonttbl è una parola di controllo di destinazione che significa che il testo non viene visualizzato nel documento.A pagina 11 della specifica un elenco di parole di controllo di esempio che cambiano la destinazione è data:
.Esempi di parole di controllo che cambiano la destinazione sono \ note a piè di pagina , \ header , \ footer , \ Pict , \ info , \ fontttbl , \ stylesheet e \ colortbll .
Ci sono molti altri ma quelli sono quelli principali.