2

我试图理解RTF 1.9.1 规范文档,但 #PCDATA(没有控制字的文本)让我感到困惑。下面是一些示例代码,以显示我不明白的内容。请注意,下面的文本格式不正确。我对其进行了格式化以使其看起来更好。

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

规范说:

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

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

4

1 回答 1

2

答案在 RTF 1.9.1 规范的第 9 页。

某些控制词,称为目的地,标记了可能出现在文档中的另一个位置或目的地的相关文本集合的开始。目的地也可能包括使用但根本没有出现在文档中的文本。

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

改变目的地的控制词的例子是\footnote\header\footer\pict\info\fonttbl\stylesheet\colortbl

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

于 2014-10-02T03:56:39.290 回答