Parsing RTF#PCDATA与文档文本

Parsing RTF#PCDATA与文档文本,parsing,text,rtf,pcdata,Parsing,Text,Rtf,Pcdata,我试图理解PCDATA(没有控制词的文本)让我困惑。下面是一些示例代码来说明我不理解的地方。请注意,下面的文本格式不正确。我把它格式化使它看起来更漂亮 { \fonttbl { \f0 \fbidi \froman \fcharset0 \fprq2 { \* \panose 02020603050405020

我试图理解PCDATA(没有控制词的文本)让我困惑。下面是一些示例代码来说明我不理解的地方。请注意,下面的文本格式不正确。我把它格式化使它看起来更漂亮

{
    \fonttbl
    {
        \f0
        \fbidi 
        \froman
        \fcharset0
        \fprq2
        {
            \*
            \panose 
            02020603050405020304
        }
        Times New Roman;
    }
}
说明书上说:

如果字符不是左大括号({)、右大括号(})、反斜杠(\)或CRLF(回车符/换行符),则读取器将假定字符为纯文本,并使用当前格式属性将字符写入当前目标


如果我遵循上述规范,我最终会在文档中写入
Times New Roman
。解析器如何知道它是否遇到了#PCDATA或文档文本?

答案在RTF 1.9.1规范的第9页

某些控制字(称为目的地)标记可能出现在文档中另一位置或目的地的相关文本集合的开始。目标还可能包括已使用但根本不出现在文档中的文本

在我在问题中给出的示例中,fonttbl是一个目的地控制字,表示文本不会出现在文档中。规范第11页给出了改变目的地的示例控制字列表:

更改目的地的控制字示例有\footnote\header\footer\pict\info\fonttbl\stylesheet\colortbl

还有很多,但这些是主要的