RTF的结构其实并不复杂,实际上每个RTF文件都是一个文本文件,里面包括"命令"和"正文",然后由编辑器来解释这个文本文件,分析里面的各种命令,并将相应的正文显示出来。
RTF文件中的命令都是一些以"\"符号开始的字符串,例如在文件的一开始就以"\rtf"来表示这个文件是一个RTF格式的文件。另外一个完整的RTF文件包括文件头和文件体两部分。在文件头中包括字体表、文件表、颜色表的几个数据结构,文件体中的字体、表格的风格都是根据文件头中的信息来格式化的。文件头中的每一个表都以一对大括号括起来。下面就是一个颜色表的例子。
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
首先由一个"\colortbl"来表示大括号内是颜色表,然后由\red0\green0\blue0来表示正文显示时用到的一种颜色。这种颜色的红绿蓝分量分别都是0。其他以此类推,两种颜色之间用分号隔开。在内容中以"\cf0"命令来表示当前的文字用第0号颜色来显示。
文件体由版面格式化命令、正文和各种特殊命令组成的。版面格式化命令是用来控制要显示的正文的字体,颜色和其他与版面有关的项目的。而特殊的命令则是在显示一些例如图象,表格等特殊正文时所使用的。有一些特殊命令会用到大括号来括住他的一些子命令,但无论如何,左大括号的数目和右大括号的数目中是一一对应的(注意:整个RTF文件也由一对大括号括起来)。另外,在由于字符"\"用来表示命令的开始,所以用"\\"来表示正文中的字符"\"。
对于中文字,RTF文件进行了特殊的处理,众所周知,一个中文字是由一个16位的数字组成的内码来表示的,也就是两个ASCII字符的长度。RTF文件中并不是简单的将这两个ASCII字符放在正文中,因为这样会引起特殊ASCII字符和中文字的冲突。RTF文件使用了命令的方式来表示中文字:"\'内码1\'内码2"其中的内码是以文本的方式存储的。例如"老师备课系统"在RTF中表示为"\'c0\'cf\'ca\'a6\'b1\'b8\'bf\'ce\'cf\'b5\'cd\'b3"。
另外,RTF文件对图形的处理是一个很重要的问题,也是实现备课系统的一个难点。在RTF文件中,图形以两种方式存在。第一种是直接嵌入的方式,以"\pict"命令开始,第二种方式将图片作为OLE对象嵌入,以"\object"命令开始。并且无论以那种方式,整个图片的数据都是由一对大括号括起来的(即"{\object
……}")。每一个OLE对象在RTF中分为两个部分,第一部分是OLE的数据,如果RTF的文件解释器能进行OLE操作时,可以利用这部分的数据得到OLE的属性参数并对其进行修改显示,第二部分由"\result"命令引出,后面跟的其实是一个图片,当RTF的文件解释器不能进行OLE操作时,则可以简单的显示该图片。但这样就不能对该OLE对象进行修改了。图片数据是以Microsoft内部使用的一种矢量图"METAFILE"格式来存储的。在RTF中存放了一个完整的METAFILE文件,但其数据是以ASCII字符的方式存在。由于大多数浏览器都不支持这种格式的图片文件,因此需要将其转换成通用的图片格式,例如:BMP、GIF、JPG等等,但是在Microsoft
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
用备课系统开发远程教育课件 第3页下载如图片无法显示或论文不完整,请联系qq752018766