So schwierig ist das nicht.
Man kann das NotesMimeEntity dafür zweckentfremden:
Beispiel siehe hier
http://wwwendt.de/tech/base64/libBase64.lssDXL ist ja für dich soweit ich weiß auch kein Neuland mehr. (hattest da nicht irgendwelche Probleme mit der Skalierung)
Ich kenn jetzt dein genaues Konzept nicht, aber ich würde es wie Folgt machen:
1. Das Dokument im Backend anlegen (ohne RT-Item)
2. Das Dokument speichern. (Dies ist wichtig, der Importer kann nur Dokumente updaten die gespeichert sind.)
3. Den DXL-Header in einen Stream schreiben. Müsste etwa so aussehen: <document...><noteinfo.../><item...><richtext...><par><img...>
4. Die Base64 Daten in den Stream schreiben (blöderweise kann man writeText und write im Stream nicht mischen :-( )
5. Alle DXL-Tags schließen
6. Import durchführen mit DXLIMPORTOPTION_UPDATE_ELSE_IGNORE (dieser fügt das RT-ITem hinzu)
7. Wichtig! Das Dokument darf nun nicht mehr gespeichert werden! (gibt glaub ich einen Replizier/Speicherkonflikt)
Will man das Dokument im Anschluss aus irgendwelchen Gründen trotzdem nochmals speichern, so muss man es neu laden. Zuerst merkt man sich die NoteID, dann löscht man die Referenz mit "delete doc" aus dem Speicher, dann holt man sich es mit set doc = db.getDocumebtByID(....) wieder.
Gruß
Roland