题
我正在尝试了解 RTF 1.9.1规范文档但#pcdata(没有控制词的文字)让我困惑。下面是一些示例代码来展示我不明白的东西。请注意,下面的文本格式错误地格式化。我格式化它让它看起来更好。
{
\fonttbl
{
\f0
\fbidi
\froman
\fcharset0
\fprq2
{
\*
\panose
02020603050405020304
}
Times New Roman;
}
}
.
规范说:
如果字符除了打开支架({),关闭支撑(}),反斜杠(\)或CRLF(返回返回/线路),则读者假定该字符是纯文本和写入使用当前格式化属性到当前目的地的字符。
如果我要遵循上面的规范,我将最终向文档写入Times New Roman
。解析器应该如何知道它是否遇到#pcdata或文档文本?
解决方案
答案在RTF 1.9.1规范的第9页。
某些控制单词,称为目标,标记在文档中可以出现在另一个位置或目的地的相关文本集合的开头。目的地也可以包括所用的文本,但根本不会出现在文档中。
在我提供的例子中,Fonttbl是一个目标控制词,否则文本未出现在文档中。在本说明书中,给出了更改目标的示例控制字列表:
更改目标的控制单词的示例 \ socknote , \ header , \页脚, \ pict , \ info , \ fonttbl , \ stylesh , \ colortbl 。
还有更多,但这些是主要的。
不隶属于 StackOverflow