2009-12-01

轉譯 Body 欄位內容為 "Pass-Thru HTML" 的代理程式 (Agent)

Lotus Domino / Notes 整合 TinyMCECKEditor ( FCKEditor ) 所產生的內容為 HTML 的原始碼,在經由 Lotus Domino Server 存檔後,這些 HTML 原始碼會被當作純文字存到 RichText 欄位去,所以,當在 Web 上存檔再打開文件時,就只會看到一堆 HTML 原始碼,要解決這個問題就需要將這些文字經由設定 Pass-Thru HTML 的屬性,讓 Lotus Domino Server 知道這些文字是要轉成 HTML 的才行。

以下是作轉譯的代理程式,要放在 WebQuerySave 時執行。

Sub Initialize

Dim session As New NotesSession

Dim doc As NotesDocument

Dim bodyRT As NotesRichTextItem

Dim htmlSTR As String

Dim PassThruHtmlStyle As NotesRichTextStyle

'取出傳回的 HTML 原始碼

Set doc = session.DocumentContext

Set bodyRT = doc.GetFirstItem( "Body" )

If ( bodyRT.Type = RICHTEXT ) Then

   htmlStr = bodyRT.GetUnformattedText


   '取除現有的 Body 欄位後,先移除再新增一個具有 Pass-Thru HTML 屬性的 Body 欄位

   Call doc.RemoveItem( "Body" )

   Set bodyRT = New NotesRichTextItem( doc, "Body" )

   Set PassThruHtmlStyle = session.CreateRichTextStyle

   PassThruHtmlStyle.PassThruHTML = True

   Call bodyRT.AppendStyle( PassThruHtmlStyle )

   Call bodyRT.AppendText( htmlStr )

End If

End Sub

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁