在B/S下保持RTF域格式的方法

来源:互联网 发布:锐战网络赵中毅老婆 编辑:程序博客网 时间:2024/05/15 08:18

在Lotus b/s程序的开发中,经常要使用到RTF域,而Lotus提供的RTF虽然可以使用applet来显示并可以编辑文本文字的格式,但其功能有限,而且显示速度比较慢.也并不是所有的IE都支持.那么现在开发中用的最多的还是自已来处理RTF域的格式.目前使用最多的应该是基于DHTML编写的网页编辑器,它最终产生的是HTML代码,而在Lotus中HTML代码在RTF域中默认是把标签显示给了用户,这不是我们所想要的效果.解析后的效果才是我们所想要的. 现在总结一下显示RTF域中输入的文字的格式应该有三个不同的方法.看情况而定.

 
1.在RTF域中输入HTML代码,想保持HTML网页的格式.
  解决方法如下:
 Sub Initialize     
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Set db = session.CurrentDatabase
     Dim doc As New NotesDocument(db)
     Call doc.AppendItemValue("From", session.UserName)
     Call doc.AppendItemValue("Subject", _
     "Meeting time changed")
     Dim richStyle As NotesRichTextStyle
     Set richStyle = session.CreateRichTextStyle
     Dim richText As New NotesRichTextItem(doc, "Body")
     richStyle.PassThruHTML = True
     Call richText.AppendStyle(richStyle)
     Call richText.AppendText("<B>Hello</B>")
     Call doc.Save(True, False)
End Sub
 
以上代码显示的最后效果是Hello而不是<B>Hell</B>,这段代码的关键是richStyle.PassThruHTML = True这句,它把RTF域的PassThruHTML属性设为了TRUE这时候RTF就会完全解析HTML标签并显示成网页的格式.
 
但是我好像发现在用代理来创建一个新文档时并不能直正的创建出一个richStyle.PassThruHTML = True的RTF域.有时候并不是很灵.特别是在当代理产生了多个同名的RTF域时这种情况出现的更多.
 
2.当RTF域中输入的是文本文字不带 HTML标签时,这时如果要在IE下保持格式需要把回车符换成HTML标签即:<br>或者是<p>标签.并把空格符换成&nbsp;
  又因为在dominoR5下lotusScript没有提供replace函数(Domino R6下自带了)所以我们必须要自已写一个replace函数来处理回车换行符.

原创粉丝点击