富文本格式
A. rtf为富文本,比txt多了格式字体支持.富文本什么意思格式字体又是什么意思
格式就是文章的段落、行间距等一系列排列规范。
字体就是可以设置文字这黑体、仿宋之类的。
文本文件只有纯文字内容,没有格式,也不保存字体。
RTF文件为富文本,它在文本文件多了很多格式、字体的设置功能,可以保存更多的信息,让文字组织起来更便于使用,也更美观。它的功能比文本文件多很多,又远远不及WORD等专业的字处理软件。但它有一些基本的功能,可以处理一般的文档。同样数量的文字,形成的RTF文件比WORD小,比文本文件大。
这是我根据自己掌握的内容进行编写的,希望对你有帮助。
B. Rich Text Format文件格式是什么格式啊
Rich Text Format, 一般简称为RTF,也称富文本格式,是由微软公司开发的跨平台文档格式。以纯文本描述内容,能够保存各种格式信息,可以用写字版,Word等创建。大多数的文字处理软件都能读取和保存RTF文档。
对普通用户而言,RTF格式是一个很好的文件格式转换工具,用于在不同应用程序之间进行格式化文本文档的传送。 通用兼容性应该是RTF的最大优点,但同时也就具有它的缺点,比如文件一般相对较大(可能因为嵌入了兼容各种应用程序的控制符号吧)、WORD等应用软件特有的格式可能无法正常保存等。
C. 富文本格式的分析
RTF是一种非常流行的文件结构,很多文字编辑器都支持它,VB等开发工具甚至还提供了Richtxtbox的控件。编写通用工具的程序员应该考虑在自己的软件中加入读写RTF文件的功能,这样就需要对RTF的结构有充分的了解。而现在最重要的信息发布手段莫过于WWW了,在编辑软件中提供RTF到HTML的转换也是程序员应该考虑的事情。尽管WORD中已经有这个功能,但不能因此就对您的顾客说:“先用我的程序存成RTF,然后再用WORD......”。下面将对RTF文件结构分析及其应用进行讨论。 掌握了基本文字表述方法后,你一定会试着进一步探索文本更高级的表示方法,如下划线、颜色、粗体、斜体等等,而这些在V1.7规范中都作了详细描述,本文只列出部分常用关键字,以供参考。l 对于字体表和颜色表的说明:对于我们在文档中使用的每一个字体和颜色,我们都必须在文档头的字体表和颜色表中预先定义。字体表定义的例子如下:{fonttbl{f0fromanfcharset0fprq2{*panose 02020603050405020304}Times New Roman;}{f1fswissfcharset0fprq2{*panose 020b0604020202020204}Arial;}{f10fnilfcharset2fprq2{*panose 05000000000000000000}Wingdings;}… …}我们在使用字体时,就可以直接指定字体表的一个索引,如:“f1Happy”表示字体为Arial 的文本Happy。如果我们想加入其他字体,如“华文中宋”,那么只需要在字体表中加入该字体说明,并在需要时引用该字体索引值即可。方法为(华文中宋的ASCII串为“'bb'aa'ce'c4'd6'd0'cb'ce”):{f222fnilfcharset134fprq2'bb'aa'ce'c4'd6'd0'cb'ce;},然后通过f222来引用该字体即可。颜色表定义的例子如下:{colortbl;
ed0green0lue0;
ed0green0lue255;
ed0green255lue255;
ed0green255lue0;
ed255green0lue255;
ed255green0lue0;
ed255green255lue0;
ed255green255lue255;
ed0green0lue128;
ed0green128lue128;
ed0green128lue0;
ed128green0lue128;
ed128green0lue0;
ed128green128lue0;
ed128green128lue128;
ed192green192lue192; … …}颜色表中每个颜色值采用RGB格式书写,每个颜色用分号格开,注意第一个颜色值c0为空,表示系统默认颜色(一般为黑色)。依次为: 、1、2、… …。我们在使用颜色时(如字体颜色)就可以指定某一个颜色索引值,如“cf2Sunday”表示字体颜色为RGB(0,0,255)蓝色的文字Sundy。“cb6ABC”表示字体背景色为RGB(255,0,0)的文字“ABC”。如果我们需要加入其他颜色值,只需要在颜色表中加入颜色定义,并通过相应的索引值来引用它即可。
字符底纹语法如下:
控制字 涵义
==============================================================
chbrdr 字符边框(每边均有边框)。
chshdngN 字符阴影。参数N的值文字阴影的百分比。
chcfpatN N是背景图案的颜色,指定文档颜色表的一个索引。
chcbpatN N是填充色,指定文档颜色表的一个索引。
chbghoriz 指定水平线文本背景图案。
chbgvert 指定垂直线文本背景图案。
chbgfdiag 指定正向对角线文本背景图案(\\)。
chbgbdiag 指定反向对角线文本背景图案(\\)。
chbgcross 指定十字线文本背景图案。
chbgdcross 指定对角十字线文本背景图案。
chbgdkhoriz 指定粗水平线文本背景图案。
chbgdkvert 指定粗垂直线文本背景图案。
chbgdkfdiag 指定粗前斜线文本背景图案(\\)。
chbgdkbdiag 指定粗后斜线文本背景图案(////)。
chbgdkcross 指定粗十字线文本背景图案。
chbgdkdcross 指定粗对角十字线文本背景图案。
假设我们希望得到背景为水平线、字体为华文中宋(字体索引为222)、颜色为红色(颜色索引为6)的文本“星期天”,则只需输入:f222cf6chbghoriz'bb'aa'ce'c4'd6'd0'cb'ce 即可。
字符下划线语法如下:
控制字 涵义
=========================================================================
ul连续的下划线。
ul0关闭所有下划线。
ulcN 下划线颜色。(注意:大写N表示一个索引数字,下同)
uld 点下划线。
uldash 短划下划线。
uldashd 点划下划线。
uldashdd 双点划下划线。
uldb 双下划线。
ulhwave 加重波浪下划线。
ulldash 长划下划线。ulnone 停止所有下划线。ulth 粗下划线。
ulthd 粗点下划线。
ulthdash 粗短划下划线。
ulthdashd 粗点划下划线。
ulthdashdd 粗双点划下划线。
ulthldash 粗长划下划线。
ululdbwave 双波浪下划线。
ulw 字下加下划线。
ulwave 波浪下划线。 下划线语法与前面底纹的使用相同。
其他文本显示高级属性:
控制字 涵义
====================================================
outl 边框。
outl 0关闭之。
scaps 小体大写字母。
scaps 0关闭之。
shad 阴影。
shad 0关闭之。
strike 删除线。
strike0关闭之。
striked1 双删除线。
striked0关闭之。
sub 按照字体信息的下标文本和缩小点的尺寸。
super 按照字体信息的上标文本和缩小点的尺寸。
对齐方式语法如下:
控制字 涵义
======================================================================
qc 居中对齐。
qj 两端对齐。
ql 左对齐(默认)。
qr 右对齐。qd 分散对齐。
qkN 使用Kashida规则调整行百分比(0-低、10-中、20-高)。
qt .用于泰文的分散对齐。
文本缩进语法如下:
控制字 涵义
========================================================================
fiN 首行缩进(默认为0)。
cufiN 采用字符单位的百分比的首行缩进值,用以覆盖fiN的设置,虽然它们可以设为相同值。
liN 左端缩进(默认为0)。
linN 从左至右段落的左端缩进值;如果在从右至左段落则表示右端缩进值(默认为0)。linN定义了段前空格数。
culiN 采用字符单位的百分比的左端缩进值,与linN一样,它用以覆盖liN和linN的设置,虽然它们可以设为相同值。
iN 右缩进(默认为0)。
inN 从左至右段落的右端缩进值;如果在从右至左段落则表示左端缩进值(默认为0)。
inN定义了段前空格数。
curiN 采用字符单位的百分比的右端缩进值,与
inN一样,它用以覆盖
iN和
inN的设置,虽然它们可以设为相同值。
adjustright 当文档网格被定义时自动调整右缩进。
文本间距语法如下:
控制字 涵义
========================================================================
sbN 段后间隔(默认为0)。
saN 段前间隔(默认为0)。sbautoN 自动段前间隔:
0 段前间距取决于sb。
1 自动段前间距(忽略sb)。
默认为0。saautoN 自动段后间隔:
0 段后间距取决于sa。1 自动段后间距(忽略sa)默认为0。
lisbN 采用字符单位的百分比的段前间隔值,用以覆盖sbN的设置,虽然它们可以设为相同值。
lisaN 采用字符单位的百分比的段后间隔值,用以覆盖saN的设置,虽然它们可以设为相同值。
slN 行间距。如果没有使用该控制字或者使用sl0,则行间距将根据行间字符最高值自动取值。若N为一个正值,则该值将仅仅在该值大于行间字符最高值时才使用(否则,使用字符最高值);分N是一个负值,即使在其小于行间字符最高值时,总是使用N的绝对值。slmultN 多倍行间距。指出当前行间距是单倍行距的倍数。该控制字只能跟在sl后,联合作用。0 “最小”或者是“精确”的行距1 多倍行距,相对于“单倍”行距。
osnaplinegrid 取消对齐网格线。 上面对文本和图片都进行了分析,相信你已经对rtf文件格式有了一定体会,接下来说明rtf文件中表的表示方法。表的定义稍显复杂,不过还是有规律可循的。不存在rtf表组,实际上表由段落属性来描述。一个表表现为多个表行的顺序排列。一个表行是一个由不同单元格组成的段落序列。简言之,表格由行组成,行由单元格组成。不管有多复杂的表格,它都是通过一行接一行的描述来实现的,包括表格的嵌套。表行从控制字 rowd开始,
ow结束。包含在一个表行中的每个段落必须指定intbl控制字或者从前一段落继承。一个单元内可能有多个段落;单元由单元格标志(cell控制字)结束,行由行标志(
ow控制字)结束。表行也可以被绝对定位。此时,表行的每个段落必须具有相同的定位控制字。表的属性可以从前一行继承;因此,连续的表行可以通过单一的<tbldef>来定义。一个简单表格例子如下: 1,1 1,2 1,3 2,1 2,2 2,3rtf内容如下: rowd irow0irowband0 s15 rgaph108 rleft-108 rbrdrtrdrsrdrw10 rbrdrlrdrsrdrw10 rbrdrbrdrsrdrw10 rbrdrrrdrsrdrw10 rbrdrhrdrsrdrw10 rbrdrvrdrsrdrw10 rftswidth1 rftswidthb3 rautofit1 rpaddl108 rpaddr108 rpaddfl3 rpaddft3 rpaddfb3 rpaddfr3 blrsid686 bllkhdrrows bllklastrow bllkhdrcols bllklastcol clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx2732clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx5573clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx8414pardplain qj li0
i0
in0lin0yts15 gfenp2052 {insrsid686 hichaf0dbchaf13lochf0 1,1cell hichaf0dbchaf13lochf0 1,2cell hichaf0dbchaf13lochf0 1,3cell }pardplain ql li0
in0lin0 gfenp2052 {insrsid686 rowd irow0irowband0 s15 rgaph108 rleft-108 rbrdrtrdrsrdrw10 rbrdrlrdrsrdrw10 rbrdrbrdrsrdrw10 rbrdrrrdrsrdrw10 rbrdrhrdrsrdrw10 rbrdrvrdrsrdrw10 rftswidth1 rftswidthb3 rautofit1 rpaddl108 rpaddr108 rpaddfl3 rpaddft3 rpaddfb3 rpaddfr3 blrsid686 bllkhdrrows bllklastrow bllkhdrcols bllklastcol clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx2732clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx5573clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx8414
ow }pardplain qj li0
i0
in0lin0yts15 gfenp2052 {insrsid686 hichaf0dbchaf13lochf0 2,1cell hichaf0dbchaf13lochf0 2,2cell hichaf0dbchaf13lochf0 2,3cell }pardplain ql li0
in0lin0 gfenp2052 {insrsid686 rowd irow1irowband1lastrow s15 rgaph108 rleft-108 rbrdrtrdrsrdrw10 rbrdrlrdrsrdrw10 rbrdrbrdrsrdrw10 rbrdrrrdrsrdrw10 rbrdrhrdrsrdrw10 rbrdrvrdrsrdrw10 rftswidth1 rftswidthb3 rautofit1 rpaddl108 rpaddr108 rpaddfl3 rpaddft3 rpaddfb3 rpaddfr3 blrsid686 bllkhdrrows bllklastrow bllkhdrcols bllklastcol clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx2732clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx5573clvertaltclbrdrtrdrsrdrw10 clbrdrlrdrsrdrw10 clbrdrbrdrsrdrw10 clbrdrrrdrsrdrw10 cellx8414
ow }是不是很复杂?不过没关系,我们通过对其进行分段,并加入适当注释,你就会对rtf文件中的表结构一目了然。首先需要声明的是,rtf1.7规范中规定,表行的格式如下:(<tbldef> <cell>+ <tbldef>
ow) | (<tbldef> <cell>+
ow) | (<cell>+ <tbldef>
ow),目前word2003采用的方式就是第一种,即“定义+内容+重复定义”,如此一来就会有很大的数据冗余,这就是为什么word2003的一个简单文档都会很大的原因,不过为了兼容性考虑,这样处理也是必要的。其定义也由“行定义+单元格定义”组成,其中单元格定义可用重复。分析代码如下(红色):
表格行1 rowd表行1开始表格属性 rgaph108表中单元格半间距 rleft-108表的最左边位置行边框设置 rbrdrt行的上边框rdrs单倍厚度rdrw10线宽 rbrdrl行的左边框rdrs单倍厚度rdrw10线宽 rbrdrb行的下边框rdrs单倍厚度rdrw10线宽 rbrdrr行的右边框rdrs单倍厚度rdrw10线宽单元格1边框设置clbrdrt单元格上边框rdrw15线宽rdrs单倍厚度clbrdrl单元格左边框rdrw15线宽rdrs单倍厚度clbrdrb单元格下边框rdrw15线宽rdrs单倍厚度clbrdrr单元格右边框rdrw15线宽rdrs单倍厚度cellx2732单元格右边界单元格2边框设置clbrdrt单元格上边框rdrw15线宽rdrs单倍厚度clbrdrl单元格左边框rdrw15线宽rdrs单倍厚度clbrdrb单元格下边框rdrw15线宽rdrs单倍厚度clbrdrr单元格右边框rdrw15线宽rdrs单倍厚度cellx5573单元格右边界单元格3边框设置clbrdrt单元格上边框rdrw15线宽rdrs单倍厚度clbrdrl单元格左边框rdrw15线宽rdrs单倍厚度clbrdrb单元格下边框rdrw15线宽rdrs单倍厚度clbrdrr单元格右边框rdrw15线宽rdrs单倍厚度cellx8414单元格右边界行1数据pard重置段落属性intbl段落是表的一部分kerning2紧缩字符尺寸f0字体0fs21尺寸21 1,1 1,1 cell表单元格1结束1,2 1,2 cell表单元格2结束1,3 1,3 cell表单元格3结束f1字体1
ow表行1结束f0字体0表格行2 rowd表行2开始 rgaph108表中单元格半间距 rleft-108表的最左边位置行边框设置 rbrdrtrdrsrdrw10 rbrdrlrdrsrdrw10 rbrdrbrdrsrdrw10 rbrdrrrdrsrdrw10 单元格1边框设置clbrdrtrdrw15rdrsclbrdrlrdrw15rdrsclbrdrbrdrw15rdrsclbrdrrrdrw15rdrs cellx2732单元格2边框设置clbrdrtrdrw15rdrsclbrdrlrdrw15rdrsclbrdrbrdrw15rdrsclbrdrrrdrw15rdrs cellx5573单元格3边框设置clbrdrtrdrw15rdrsclbrdrlrdrw15rdrsclbrdrbrdrw15rdrsclbrdrrrdrw15rdrs cellx8414行2数据intbl 段落是表的一部分2,1 2,1cell表单元格1结束2,2 2,2cell表单元格2结束2,3 2,3cell表单元格3结束f1字体1
ow表行2结束至此,你应该对rtf表格输出有一定认识了吧。当然在表格中插入图片、嵌入表格等的实现方法同理,嵌入的图片可以等同于一段文本来处理,但是嵌套表格的实现可能比较复杂,因为它涉及段落文本嵌套层次等高级问题,这里不再详述,有兴趣的读者可以参考《rich text format (rtf) specification v1.7》。 通过对rtf文件的分析,我们得出一个rtf文件基本结构如下:rtf文件<file>
文件头<header>rtf版本
tf字符集<charset>默认字体区域设置<deffont>默认字体号deff?字体表<fonttbl>文件表<filetbl>?颜色表<colortbl>?样式表<stylesheet>?编目表<listtables>?编目表{ *listtable }编目替换表{ *listoverridetable }段落组属性{ *pgptbl }跟踪修订<revtbl>?rsid表<rsidtable>?生成器信息<generator>?文档区<document>文档信息区<info>?标题<title>?主题<subject>?作者<author>?经理<manager>?公司<company>?最后修改者<operator>?文档类别<category>?关键字<keywords>?注释<comment>?文档的版本号version?word摘要信息中的注释<doccomm>?内部版本号vern?创建时间<creatim>?修订时间<revtim>?最后打印时间<printim>?备份时间<buptim>?总编辑时间(单位:分钟)edmins?页数
ofpages?字数
ofwords?包含空格的总字符数
ofchars?内部id号id?文档格式属性<docfmt>*节文本<section>+节格式属性<secfmt>*页眉页脚设置<hdrftr>?段落文本<para>+文本<textpar>|项目符号与编号<pn>?段落边框<brdrdef>?段落格式属性<parfmt>*定位对象与边框<apoctl>*制表位设置<tabdef>?段落底纹<shading>?隐藏与否(/v /spv)?表格<row>行开始 rowd行定义<tbldef>单元格<cell>+单元格定义+单元格内容+重复行定义<tbldef>行结束
ow字符文本<char>+图片<pict>图片开始{*shppict {pict }图片属性图片数据对象<obj>绘图对象shp脚注footnote注释<annot>域<field>
D. SQL数据库中的一个表保存了富文本格式的字段。比如——见补充内容。 请教如何把其中的文字提取出来
使用 charindex ('你要查的字符', column) 和 substring 结合使用看看
E. 什么是富文本
富文本格式(Rich Text Format, 一般简称为RTF)是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。RTF是Rich TextFormat的缩写,意即多文本格式。
富文本作为一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。
富文本作为一种非常流行的文件结构,很多文字编辑器都支持它。一般的格式设置,比如字体和段落设置,页面设置等等信息都可以存在RTF格式中,它能在一定程度上实现word与wps文件之间的互访。
(5)富文本格式扩展阅读:
富文本格式(RTF)规范为了便于在应用程序之间轻松转储格式化文本和图形的一种编码方法。现在,用户可以利用特定转换软件。
在不同系统如MS-DOS、Windows、OS/2、Macintosh和Power Macintosh的应用程序之间转移字处理文档。RTF规范提供一种在不同的输出设备、操作环境和操作系统之间交换文本和图形的一种格式。
富文本使用ANSI, PC-8, Macintosh, 或IBM PC字符集控制文档的表示法和格式化,包括屏幕显示和打印。
F. 富文本格式怎么统一变为WORD格式
有很多转化软件,可以在网上找找,输入RTF转WORD,就可以找到。
G. 如何将word转换成富文本格式
打开word文档
选择另存为
然后选择其他格式
H. 富文本格式特点
它比穷文本格式有钱。
上面是玩笑。。。
所谓富文本就是RTF(Rich Text Format)又译为多文本格式,简单点说就是它相对普通文本可以带有丰富的格式设置,使文本的可读性更强。
普通的txt文件是不能显示格式的。
而rtf文件就可以显示出很多格式信息。
特点:更好看,更复杂。
更过的看网络吧。
I. 富文本格式的RTF语法
一个RTF文件由未格式化文本、控制字、控制符号和组组成。为了更容易的转换,一个标准的RTF文件应该仅包含7位ASCII码字符,RTF文件没有限制文件的行的最大长度。(再议:maximun line length是指行的字符数还是指文档的行数?)
An RTF file consists of unformatted text, control words, control symbols, and groups. For ease of transport, a standard RTF file can consist of only 7-bit ASCII characters. (Converters that communicate with Microsoft Word for Windows or Microsoft Word for the Macintosh should expect 8-bit characters.) There is no set maximum line length for an RTF file.
控制字是一种特殊的RTF用来标记打印机控制符的格式化命令,也是程序用来管理文档样式的格式化信息。(再议:措辞不好)一个控制字不能超过32个字符,一个控制字类似以下形式:
LetterSequence<Delimiter>
注意:每个控制字是以反斜杠开始的。
LetterSequence由小写字母字符(a-z)组成。RTF是大小写敏感的。
一个RTF控制字的结束由分隔符标记,以下字符可以作为分隔符: 一个空格。在这种情况下,空格作为关键字的一部分。 一个数字或连字符(-), 意味着它是一个数字参数。这数字序列的长度由其后的一个空格或除了字母和数字的其他字符划定。这个参数可以是正数或者负数,它的取值范围通常是从-32767到32767。然而,Word的取值范围可以到达由-31680到31680。Word 允许关键字的小数字参数取值范围在-2,147,483,648到2,147,483,648(特别的,in,
evdttm,和一些图像属性)。(再议:a small number of keywords不知所指,应该指这些二进制文件吧。)一个RTF解析器应该能够将一个随意写出的数字字符串转换为一个关键字的合法值。如果一个数值参数紧跟着控制字,这个参数就是控制字的一部分。这时,控制字通过一个空格或非字母数字字符分隔出来,和分隔其他控制字的方式相同。 除了字母和数字的其他字符。这种情况下,此分隔字符结束控制字,而它并不属于控制字的一部分。如果是第一种情况,空格并不会出现在文档中。分隔符之后的所有字符,包括空格,将被写入文档。基于这个理由,你应该尽在需要的情况下使用空格,不要只是将空格用在分隔RTF代码。RTF 文件内容一个 RTF 文件符合以下语法:<File>'{' <header> <document> '}' 本语法是标准的RTF语法,任何RTF查看器都应该可以正确的解释以此语法格式写出的RTF文件。有必要重申的是:RTF查看器没有必要包含所有的控制字,但它必须能够无害的忽略它不知道(或者未使用)的控制字,并且必须能正确的略过被控制字符号标记的部分。然而,生成RTF的编辑器有可能并没完全符合这个语法规范,同样地,RTF查看器应该有足够能力去处理一些细微变更的控制字。虽然如此,如果一个生成RTF的编辑器符合本规范,那么任何一个正确的RTF查看器都应该能够完美的解释它。
J. 请问通过富文本wangEditor编辑器编辑的文章,传给后台,数据格式应该是什么样的啊
我也有同样的问题, 后台代码如何获取到wangEditor里的文章内容啊?