RTF #PCDATA与文档文本

时间:2014-08-01 19:43:06

标签: parsing text rtf pcdata

我正在尝试理解RTF 1.9.1 specification document,但#PCDATA(没有控制字的文字)令我感到困惑。下面是一些示例代码,以显示我不理解的内容。请注意,下面的文字格式不正确。我格式化它使它看起来更好。

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

规范说:

  

如果字符不是左大括号({),右大括号(}),反斜杠(\)或CRLF(回车符/换行符),则读者认为该字符是纯文本并写入使用当前格式设置属性的当前目标的字符。

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

1 个答案:

答案 0 :(得分:0)

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

  

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

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

  

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

还有更多,但主要是那些。