office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

RTF文件(富文本格式)的一些解析

2020-05-15 08:00:00
tmtony8
原创
19515

RTF是Rich TextFormat的缩写,即为富文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。RTF是一种非常流行的文件结构,很多文字编辑器都支持它。一般的格式设置,比如字体和段落设置,页面设置等等信息都可以存在RTF格式中,它能在一定程度上实现word与wps文件之间的互访。

Rtf规范最早是微软编写的关于多媒体存储的一种文档存储格式,后来微软把它开放出来,这样就使得不同的应用程序、操作系统、显示设备之间可以根据Rtf规范进行实现,最终使得同一个Rtf格式的文档在不同的环境有相同的显示效果。

1、RTF文件:使用7-bit ASCII字符格式存储,文件没有限制一行的最大长度。
RTF文件 = 组 + 控制字 + 控制符 + 文档内容

2、控制字:管理文档信息、文档显示格式的命令,一个控制字最长32个字符。
控制字 = \ + 字母序列 + 分隔符
例如:"\fc "代表字体颜色
字母序列 = a~z小写字母中的一个或者多个字符
例如:"\fc "代表字体颜色
分隔符 = 空格 或者 数字 或者 空格和数字 (数字作为控制字的参数)
例如:"\b "代表加粗,"\b0 "代表不加粗
注意:任何非字母和数字的其他字符。这种情况下,此分隔字符结束控制字,而它并不属于控制字的一部分。如果一个空格用于分隔控制字,该空格不会在文档中出现。而任何跟随该分隔符的字符,包括空格,将在文档中出现。因此,你应该只在必要时使用空格,避免仅仅为了分割RTF代码而使用空格。

3、控制符:控制符不需要分隔符
控制符 = \ + 非字母数字字符
例如 “\~”代表不换行空格。

4、组
组 = { 控制字 + 控制符 + 文档内容 }
例如"{\b 这个代表加粗}"会将"这个代表加粗"内容进行加粗
注意:一个组的格式描述只影响组内的文本。通常,一个组中的文本继承前一组的文本格式。但微软的RTF约定,对于脚注、注解、头和尾的组(本章稍后描述)不继承前一组的文本格式。因此, 请确定这些组总能正确格式化,正确做法是用\sectd, \pard和\plain控制字将组中的格式设为默认值,然后再增加任何需要的格式。
\sectd : 重新设置为默认的节属性
\pard:重置为默认段落属性
\plain: 重新设定字型(字符)格式化属性为应用程序定义的默认值(例如,粗体、下划线、斜体被禁止;字体大小被重新设定为12磅point)。关联字体(字符)格式化属性也被重新设定。


{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
{\colortbl ;\red255\green255\blue0;\red255\green0\blue0;\red0\green0\blue255;}
\viewkind4\uc1\pard\cf1\lang2052\f0\fs20 Osamu\cf2  Naga\cf0 y\cf3 am\cf0 a,\par
           was unable to pinpoint.//PRD#\cf1 OQS\par
it \cf0 signed a \cf1 definitive\cf0  agreement\par
\par
}


其中:
rtf1–>RTF版本
ansi–> 字符集
ansicpg936–>简体中文
deff0–>默认字体0
deflang1033–>美国英语
deflangfe2052–>中国汉语
fonttb–>字体列表
f0->字体0
fcharset134 ->GB2312国标码
'cb’ce’cc’e5–>宋体


\colortbl 颜色表 ;颜色1;颜色2;颜色3;

\viewkind4正常视图
uc1->单字节
pard->默认段落属性
cf1->颜色1
lang->2052中国汉语
f0->字体0
fs20->字体大小20磅
Osamu Naga 原文
\cf0 默认颜色
y
\cf2 颜色2
am
\cf0默认颜色 a,
\par换行



RTF文件格式说明:
1.\ansi Character Set Flag 采用的字符集名称
2.\b Character Formatting Properties Toggle 字符是粗体
3.\b0 Character Formatting Properties Toggle 字符是非粗体
4.\blueNNN Color Table Value 标识蓝色的rgb数值(0-255)
5.\brdrb Paragraph Borders Flag 段落边界底部
6.\brdrcfNNN Paragraph Borders Value 段落边界颜色
7.\brdrs Paragraph Borders Flag 段落边界单线边框
8.\brdrt Paragraph Borders Flag 段落边界顶部
9.\brdrth Paragraph Borders Flag 段落边界双线边框
10.\brdrwNNN Paragraph Borders Value 段落边界线的宽度(单位是堤)
11.\cfNNN Character Formatting Properties Value 字符前景色(0-255)
12.\chpgn Special Characters Symbol 当前页号
13.\colortbl Color Table Destination 颜色表
14.\deffNNN Font Table Value 默认字体(N是字体号)
15.\deftabNNN Document Formatting Properties Value 文档中默认tab宽度(单位是堤,默认值是720堤)
16.\emdash Special Characters Symbol 长说明号——(特殊符号)
17.\endash Special Characters Symbol 短说明号-(特殊符号)
18.\fNNN Character Formatting Properties Value 字符的字体(N是在字体表中的编号)
19.\fonttbl Font Table Destination 字体表
20.\fonttype fontname 字体类型,字体名称
21.\footer Headers and Footers Destination 所有页的页脚。
22.\footeryNNN Section Formatting Properties Value 片断中页脚和底部的距离(单位是堤,默认是720堤)
23.\fsNNN Character Formatting Properties Value 字符在半角状态下的字体大小(默认是24)
24.\greenNNN Color Table Value 标识绿色的rgb值(0-255)
25.\headeryNNN Section Formatting Properties Value 片断中标头和顶部的距离(单位是堤)
26.\i Character Formatting Properties Toggle 字符是斜体
27.\i0 Character Formatting Properties Toggle 字符是非斜体
28.\keepn Paragraph Formatting Properties Flag 段落与下段同页
29.\line Special Characters Symbol 分隔符中的一种:换行符(不是段落分隔符)
30.\li Paragraph Formatting Properties Value 段落的左缩进(默认是0)
31.\margbNNN Document Formatting Properties Value 文档底部空白的高度(单位是堤)
32.\marglNNN Document Formatting Properties Value 文档左部空白的宽度(单位是堤)
33.\margrNNN Document Formatting Properties Value 文档右部空白的宽度(单位是堤)
34.\margtNNN Document Formatting Properties Value 文档顶部空白的高度(单位是堤)
35.’ Special Characters Symbol ‘ 单撇符号
36.\page Special Characters Symbol 分隔符中的一种:分页符
37.\par Special Characters Symbol 新的段落标志
38.\pard Paragraph Formatting Properties Flag 段落中用于对脚注,注释,标头,页脚等特殊信息分成单独的组,用来针对每个组单独指定独立于文本内容的格式。
39.\plain Character Formatting Properties Flag 使字符格式恢复到应用指定的默认格式,相关的字符格式也恢复到应用指定的默认格式。
40.\qc Paragraph Formatting Properties Flag 段落格式居中
41.\qj Paragraph Formatting Properties Flag 段落两端对齐
42.\ql Paragraph Formatting Properties Flag 段落格式左对齐
43.\qr Paragraph Formatting Properties Flag 段落格式右对齐
44.\redNNN Color Table Value 标识红色的rgb值
45.\riNNN Paragraph Formatting Properties Value 段落格式的右缩进值(默认值为0)
46.\rtf RTF Version Destination RTF版本号
47.\slmultNNN Paragraph Formatting Properties Value 段落的多倍行间距0 “最小”或“严格”的行距1 多倍行间距(相对于单倍行间距)
48.\slN Paragraph Formatting Properties Value 段落的指定行间据可以调整或者默认为行的最大高度的字符的高度。
49.\tab Special Characters Symbol TAB字符
50.\titlepg Section Formatting Properties Flag 片断中有特殊格式的第一页
51.\tqr Tabs Flag 右部用TAB填充
52.\tx Tabs Value TAB位置,从左边空白处开始(而不是从左边页边缘开始,单位是堤)
53.\ul Character Formatting Properties Toggle 字符具有连续的下划线(\ul0关闭连续的下划线)
54.\widowctrl Document Formatting Properties Flag 文档的孤行控制

分享