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