RTF #PCDATA vs Documento de Texto
Pergunta
Estou tentando entender o RTF 1.9.1 documento de especificação mas #PCDATA (texto sem palavras de controle) é algo que me confunde.Abaixo alguns exemplos de código para mostrar o que eu não entendo.Observe que o texto abaixo é formatado incorretamente.Eu formatei ele para torná-lo mais bonito.
{
\fonttbl
{
\f0
\fbidi
\froman
\fcharset0
\fprq2
{
\*
\panose
02020603050405020304
}
Times New Roman;
}
}
A especificação diz:
Se o personagem é diferente de uma chave de abertura ({), chave de fechamento (}), barra invertida (\), ou um CRLF (retorno de carro/alimentação de linha), o leitor assume que o carácter de texto simples e escreve o caractere para o destino atual usando as propriedades de formatação.
Se eu fosse seguir a especificação acima, eu ia acabar escrevendo Times New Roman
para o documento.Como é um analisador de suposto saber se ele encontrou #PCDATA ou documento de texto?
Solução
A resposta está na página 9 do RTF 1.9.1 especificação.
Certas palavras de controle, referido como destinos, marca o início de uma coleção de textos que poderia aparecer em outra posição, ou de destino, dentro do documento.Destinos pode também incluir texto que é usado, mas não aparece no documento.
No exemplo que eu dei na questão, fonttbl é um destino de controle, palavra que significa que o texto não aparece no documento.Na página 11 do caderno de especificações de uma lista de exemplo de controle de palavras que mudar o destino que é dado:
Exemplos de palavras de controle que alteram o destino \footnote, \cabeçalho, odapé, \pict, \info, \fonttbl, \stylesheet, e \colortbl.
Existem muitos mais, mas esses são os principais.