Ich habe folgenden Beispielcode zum Importieren von Bilddateien in Rich-Text-Felder:
Dim session As New NotesSession
Dim dbThis As NotesDatabase
Dim docMIME As NotesDocument
Dim docUserProfile As NotesDocument
Dim doc As NotesDocument
Dim rtitemGraphic As NotesRichTextItem
Dim rtitem As NotesRichTextItem
Dim mimeEntity As NotesMIMEEntity
Dim stream As NotesStream
Dim dxlExporter As NotesDXLExporter
Dim dxlImporter As NotesDXLImporter
Dim sFile$
sFile = "D:\Bild.gif"
Set dbThis = session.CurrentDatabase
Set docMIME = New NotesDocument(dbThis)
session.ConvertMIME = False
Set mimeEntity = docMIME.CreateMIMEEntity
Set stream = session.CreateStream
If Not stream.Open(sFile, "Binary") Then Exit Sub
Call mimeEntity.SetContentFromBytes(stream, "image/" & StrRightBack(sFile, "."), ENC_IDENTITY_BINARY)
Call stream.Close
Call docMIME.CloseMimeEntities(True)
session.ConvertMIME = True
If docMIME.HasItem("Body") Then
Set rtitemGraphic = docMIME.GetFirstItem("Body")
'##### Start: Workaround um zusätzlichen Zeilenumbruch zu entfernen
Set docUserProfile = dbThis.GetProfileDocument("UserProfile", session.UserName)
If docUserProfile.HasItem("Body") Then Call docUserProfile.RemoveItem("Body")
Call rtitemGraphic.CopyItemToDocument(docUserProfile, "Body")
Set dxlExporter = session.CreateDXLExporter
dxlExporter.ConvertNotesBitmapsToGIF = True
dxlExporter.RestrictToItemNames = "Body"
Set dxlImporter = session.CreateDXLImporter(dxlExporter.Export(docUserProfile), dbThis)
dxlImporter.DocumentImportOption = DXLIMPORTOPTION_UPDATE_ELSE_IGNORE
Call dxlImporter.Process
Set rtitemGraphic = docUserProfile.GetFirstItem("Body")
'##### Ende: Workaround um zusätzlichen Zeilenumbruch zu entfernen
Set doc = dbThis.UnprocessedDocuments.GetFirstDocument
Set rtitem = doc.GetFirstItem("Body")
Call rtitem.AppendRTItem(rtitemGraphic)
Call doc.Save(True, False)
End If
Wenn ich den oben gekennzeichneteten Abschnit 'Workaround ..' nicht ausführe, wird immer ein Zeilenumbruch vor dem Bild im Rich-Text-Feld erzeugt.
Wenn man das o. g. Dokument docMIME abspeichern würde, wäre noch kein Zeilenumbruch enthalten. Erst durch ansprechen des Feldes nach dem Umschalten von ConvertMIME auf 'True' erhält das Rich-Text-Feld diesen Umbruch.
Dies sieht man auch wenn man den DXL-Export ausgibt. Ist ggf. etwas an o. g. Algorithmus verkehrt?
O. g. Code funktioniert entsprechend auch für BMP- und JPEG-Dateien nur für TIFF-Dateien funktioniert es nicht. TIFF-Dateien werden nicht als Bild sondern als Anhang erzeugt.
Aber manuell kann man in ein Dokument ein TIFF-Datei als Bild einfügen. Gibt es dafür eine Lösung.