Domino Code Fragment

Code Name*
LotusScript Notes AppendRTItem Method - Copy RichtextItem Font Information
Date*
04/28/2024
Source (or email address if you prefer)*
Rlatulippe@romac.com
IP address:.18.191.5.239
Description*
LotusScript Notes AppendRTItem Method - Copy RichtextItem Font Information
Type*
LotusScript
Categories*
(Misc)
Implementation:
Required Client:
Server:
Limitations:
Comments:
Files/Graphics attachments (if applicable): Code:
Problem:
When you use AppendRTItem to copy a rich text item, you will lose your font name attribute

of the item.

For example, the code below copies an item successfully, keeping several text attributes
(size and color), but it loses the font name.

Sub Click(Source As Button)
Dim session As New NotesSession
Dim workspace As New NOTESUIWORKSPACE
Dim db As NOTESDATABASE
Dim uidoc As NOTESUIDOCUMENT
Dim doc As NOTESDOCUMENT
Dim currentdoc As NOTESDOCUMENT
Dim view As NOTESVIEW
Dim memodoc As NOTESDOCUMENT
Dim memodoc2 As NOTESDOCUMENT
Dim item As Variant
Dim item2 As Variant
Dim richy As NOTESRICHTEXTITEM
Set db = session.CURRENTDATABASE
Set uidoc = workspace.CURRENTDOCUMENT
Set memodoc = New NOTESDOCUMENT(db)
Set memodoc2 = New NOTESDOCUMENT(db)
Set currentdoc = uidoc.DOCUMENT
memodoc.form = "Fax request"
memodoc.subject = uidoc.FIELDGETTEXT("subject")
memodoc2.form = "Fax request"
Set item2 = currentdoc.GETFIRSTITEM("FaxBody")
Set richy = New NOTESRICHTEXTITEM (Memodoc,"Body")
Call richy.AddNewLine (1)
Call richy.APPENDRTITEM(item2)
Call memodoc.save (True,True)
End Sub


Solution:
Here is a workaround for this particular case. Before calling the AppendRTItem method, you

must copy the $fonts item from the source document to the destination document.

Sub Click(Source As Button)
Dim session As New NotesSession
Dim workspace As New NOTESUIWORKSPACE
Dim db As NOTESDATABASE
Dim uidoc As NOTESUIDOCUMENT
Dim doc As NOTESDOCUMENT
Dim currentdoc As NOTESDOCUMENT
Dim view As NOTESVIEW
Dim memodoc As NOTESDOCUMENT
Dim memodoc2 As NOTESDOCUMENT
Dim item As Variant
Dim item2 As Variant
Dim richy As NOTESRICHTEXTITEM
Set db = session.CURRENTDATABASE
Set uidoc = workspace.CURRENTDOCUMENT
Set memodoc = New NOTESDOCUMENT(db)
Set memodoc2 = New NOTESDOCUMENT(db)
Set currentdoc = uidoc.DOCUMENT
memodoc.form = "Fax request"
memodoc.subject = uidoc.FIELDGETTEXT("subject")
memodoc2.form = "Fax request"
Set item2 = currentdoc.GETFIRSTITEM("FaxBody")
Set richy = Memodoc.CREATERICHTEXTITEM("Body")
%REM
'Here we copy the font information located in the $fonts item
%END REM
Set font = currentdoc.GETFIRSTITEM("$Fonts")
Call font.CopyItemToDocument( memodoc, "" )
Call richy.AddNewLine (1)
Call richy.APPENDRTITEM(item2)
Call memodoc.save (True,True)
End Sub