RTF文件格式【转】

cification v1.7》。

七、小结:RTF文档基本结构
通过对RTF文件的分析,我们得出一个RTF文件基本结构如下:
     RTF文件<File>

文件头<header>
     RTF版本/rtf
     字符集<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?
         页数/nofpages?
         字数/nofwords?
         包含空格的总字符数/nofchars?
         内部ID号/id?
     文档格式属性<docfmt>*
         节文本<section>+
              节格式属性<secfmt>*
              页眉页脚设置<hdrftr>?
         段落文本<para>+
              文本<textpar>|
                   项目符号与编号<pn>?
                   段落边框<brdrdef>?
                   段落格式属性<parfmt>*
                   定位对象与边框<apoctl>*
                   制表位设置<tabdef>?
                   段落底纹<shading>?
                   隐藏与否(/v /spv)?
              表格<row>
                   行开始/trowd
                   行定义<tbldef>
                   单元格<cell>+
                       单元格定义+
                       单元格内容+
                   重复行定义<tbldef>
                   行结束/row
         字符文本<char>+
         图片<pict>
              图片开始{/*/shppict {/pict }
              图片属性
              图片数据
         对象<obj>
         绘图对象/shp
         脚注/footnote
         注释<annot>
         域<field>
八、学以致用:基于对象的RTF文件书写器设计
基于对RTF的学习运用,我通过VB实现了一个RTF输出工具类,可以实现文本、图片、表格(可以嵌入特殊文本、图片和水平、垂直合并)。基于此工具的病历示范输出也通过了基本测试。更进一步的研究和完善将在接下来的时间进行。

详细描述如下:

l          RTF文档:
可以添加文本、图片、表格,支持页眉、页脚、页码、页眉对齐方式、页脚对齐方式、页码对齐方式。
基本方法:
Dim myRTF as New RTFCreator.clsRTFCreator
With myRTF
.PageHead = "页眉"  ‘页眉
.PageHeadAlign = alm1_左端对齐       ‘页眉对齐方式
.PageFooter = "时间:" & Format(Now, "YYYY年MM月DD日 HH:nn:ss")  ‘页脚
.PageNumber = True                   ‘是否显示页码
.PageNumberAlign = alm3_居右对齐     ‘页码对齐方式
End With
l          文本:
可以实现粗体、斜体、前景色(目前为固定颜色表)、字体大小、字体样式(目前为固定样式)、字符样式(目前为固定样式)、动画、水平缩放、雕刻、浮雕、字符间距、边框、阴影、删除线、双删除线、下标、上标、下划线(17种)、下划线颜色、隐藏文本、WEB下隐藏、字符边框(阴文)、字符阴影(阳文)、底纹背景色、底纹前景色、底纹样式(12种)、高亮显示、高亮颜色、对齐方式、项目符号等。
基本方法:
.AddText ‘添加文本,也可用.AddText “文本内容”,或者通过i=.AddText(“AAA”)返回索引值I,然后通过myRTF.Texts(i).Bold=True来设置属性。
.LastText.Bold = True                ‘粗体设置
.LastText.FontStyle = ft1_标题1      ‘字体尺寸设置
.LastText = "文本" & vbCrLf       ‘文本设置,如果需要回车,直接添加vbCrLf到文本中适当位置
.LastText.Alignment = alm2_居中对齐 ‘对齐方式
…其他设置
l          图片:
可以插入JPEG、GIF等图片,已经对输出速度进行了优化。可以设置图片对齐方式、文件名、大小、缩放比例、是否单独一行等。
使用方法:
.AddPicture (CommonDialog2.FileName)      ‘文件名
.LastPicture.AddCRLF = True               ‘独立一行
.LastPicture….其他设置(如对图像尺寸的设置)
l          表格:
可以设置单元格水平对齐、垂直对齐、上下左右边框是否存在、是否包含内部斜线(左上、左下)、边框样式(支持28种边框)、边框颜色、底纹类型、底纹背景色、底纹前景色、底纹明暗百分比、单元格宽度单位、单元格首选宽度、单元格右边界、是否是水平合并的首单元格、是否与前一单元水平合并、是否是垂直合并的首单元格、是否与前一定义垂直合并、行数、列数、文本适应单元格、不允许文本换行、是否嵌套、数据类型(目前支持简单文本、高级文本、图片三种类型,嵌套表格暂时不支持)。
使用方法:
myRTF.Addtable
With myRTF.LastTable
.Alignment = ral2_居中对齐
.AddRow                     '插入第1行
.LastRow.AddCell             '第1行,第1列(该单元格为简单文本、默认)
.LastRow.BorderStyle = cbs03_双倍厚度边框
.LastRow.BorderColor = clr02_蓝色
.LastRow.BorderWidth = 75
.LastRow.AddCell            '第1行,第2列(该单元格为高级文本,需要赋值)
Dim rtfTxt1 As cRTFText
Set rtfTxt1 = New cRTFText
.LastCell.DataType = cct1_高级文本
rtfTxt1.Bold = True
rtfTxt1.Text = "第(1,2)单元格内容:高级文本"
rtfTxt1.ForeColor = clr06_大红
rtfTxt1.FontSize = fs09_四号
Set .LastCell = rtfTxt1
.LastCell.MergeStart = True
.LastCell.BorderStyle = cbs25_双波浪线边框
.LastCell.BorderWidth = 75
.LastCell.BorderColor = clr10_深青
 …其他设置
l          对象模型:
RTFCreator
  RTFTexts
       RTFText
  RTFPictures
       RTFPicture
  RTFTables
       RTFTables
           RTFRows
                RTFRow
                     RTFCells
                         RTFCell
RTFNodes
RTFNode
八、参考文献
1、Rich Text Format (RTF) Specification v1.5,Microsoft Technical Support, 5/97- GC0165

2、Rich Text Format (RTF) Specification v1.7,Microsoft Technical Support, 8/2001– Word 2002 RTF Specification,

下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=e5b8ebc2-6ad6-49f0-8c90-e4f763e3f04f&displaylang=en

 
 

VB相关

 
 

VB6 中善用ByRef 提升速度

[vb] Set 语句

VB_Format自定义格式

VB如读取内存地址

vb FindwindowEx的用法实例

进制转化进10进制数

收藏:如何获取当前已经打开的IE对象(VB6代码)

DXInput中键码的转换(VB6.0代码)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值