操作 Notes 富文本域相关的 LotusScript 类
和操作 Notes 富文本域相关的 LotusScript 类包括:
NotesRichTextNavigator 富文本域的导航器,用来访问富文本域中的各种元素;
NotesRichTextRange 表示富文本域内容的一个范围,可以包括多个元素;
NotesRichTextDocLink 表示富文本域内容的文档链接;
NotesEmbeddedObject 表示嵌入式对象或者文件附件;
NotesRichTextSection 表示富文本域中的一个区段;
NotesRichTextTable 表示富文本域中的表格;
NotesRichTextStyle 表示富文本的各种属性;
NotesRichTextParagraphStyle 表示富文本段落的各种属性;
NotesColorObject 表示一种颜色。
下面我们通过一个程序来分析各个类的使用方法。
首先我们建立一个空白的nsf数据库,然后建立一个名为“test_rtf”的表单,这个表单中只有一个名为“Body”的富文本域,然后在缺省视图里面建立一个过滤条件名为“test”的视图,代理中的代码如下。这段程序将生成一个文档,文档中包含一个富文本域,并在富文本域中生成各种元素。
--------------------------------------------------
Sub Initialize()
On Error GoTo a
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim doc As NotesDocument
Set doc = New NotesDocument(db)
doc.Form = "test_rtf"
doc.DocID = doc.Universalid
Dim rtf As NotesRichTextItem
Set rtf = doc.CreateRichTextItem ("Body")
'生成一个文本段落并设置其字体大小,颜色等属性
Dim style As NotesRichTextStyle
Set style = s.CreateRichTextStyle
Dim pstyle As NotesRichTextParagraphStyle
Set pstyle = s.CreateRichTextParagraphStyle
Dim color As NotesColorObject
Set color = s.CreateColorObject
style.FontSize = 20
style.Bold = True
pstyle.Alignment = ALIGN_LEFT
pstyle.FirstLineLeftMargin = RULER_ONE_INCH
Call color.SetRGB(123, 234, 123)
style.NotesColor = color.NotesColor
Call rtf.AppendStyle(style)
Call rtf.AppendParagraphStyle(pstyle)
Call rtf.AppendText("这是一个文本段落,靠左对齐。")
Call rtf.AddNewline(1)
'生成一个数据库链接,链接到当前数据库
Call rtf.AppendDocLink(db,"链接到当前数据库", "当前数据库")
'生成一个包含一个表格的区段
Call rtf.AppendStyle(style)
Call rtf.BeginSection("这是一个区段", style, color, True)
Call rtf.AppendText("这是区段的开始")
Dim iRow As Integer
Dim iCol As Integer
iRow% = 3
iCol% = 3
style.NotesColor = COLOR_BLUE
Call rtf.AppendStyle(style)
'添加一个3X3的表格
Call rtf.AppendTable(iRow%, iCol%)
Call rtf.AppendText("这是区段的结束")
Call rtf.EndSection
Dim nav As NotesRichTextNavigator
Set nav = rtf.CreateNavigator
Call nav.FindFirstElement(RTELEM_TYPE_TABLECELL)
style.FontSize=16
style.Bold=False
Call rtf.AppendStyle(style)
Dim i As Integer
Dim j As Integer
For i% = 1 To iRow%
For j% = 1 To iCol%
Call rtf.BeginInsert(nav)
Call rtf.AppendText("行 " & i% & ", 列 " & j%)
Call rtf.EndInsert
Call nav.FindNextElement(RTELEM_TYPE_TABLECELL)
Next
Next
'添加一个附件
Call rtf.EmbedObject(EMBED_ATTACHMENT, "", "D:\aa1.png")
Call doc.Save(True,True)
Exit Sub
a:
MsgBox "错误在代理agent_rtf的第" & Erl & "行,描述:---" & error
End Sub