RTF-Feld als Mime oder xhtml speichern

  • Hallo,


    gibt es eine einfach Möglichkeit ein RTF-Feld als xhtml- oder mime-Format
    auf Platte zu speichern. Gibt es in LotusScript eine Stream-Klasse die xhtml verarbeitet ?


    Ich habe festgestellt das die Funktion
    mime=doc.GetMIMEEntity("Body")
    call mime.GetContentAsBytes(stream)


    bei vorhandenen Bildern im RTF abbricht und keinen Inhalt liefert.
    Woran liegt das ? Oder gehts wirklich nur als xhtml-Format(xml) ?


    Gruß Micha

    • Offizieller Beitrag

    Also das funktioniert. Schau Dir mal folgendes an:


    dann hast Du das Dokument in einem Stream und den Stream im Dom-Parser.
    Das Bild liegt dann im STream allerdings Base64 codiert vor.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hi Diali,


    ich habe nun die Daten als XML(Baum) in der Datei.


    Das Body-Feld (mit dem Bild/Text) ist nicht lesbar.


    Wie kann ich die Darstellung nun so korrigieren das dieses Bild/Text sauber dargestellt wird ?
    Ich dachte es per Xsl-Datei über einen NotesXslTransformer zu konvertieren, geht das.
    Ich habe wenig Ahnung von XML in Notes.


    Gruß Micha

    • Offizieller Beitrag

    das Bild findest Du aber in dem RT-Feld im XML-Stream? Speicher den Stream doch in eine Datei, damit Du das Teil per Text-Editor durchsuchen kannst.


    Das Elemet im DXL-Stream nennt sich <picture>. Darunter müsste es dann ein Element mit <jpg>, <jpeg> oder <gif> geben.
    In diesem Element stehen die Bilddaten.
    Um an den Teil zu kommen brauchst Du den DOM- oder SAX-Parser.


    Hast Du den Stream mit den Base64 codierten Bild-Daten kannst Du die mit der NotesMime-Klasse decodieren und in eine Datei schreiben.

    Code
    ' streamIn ... enthalt die Base64 codierten Bild-Daten'
    Set doc = db.CreateDocument
    Dim body As NotesMimeEntity
    Set body = doc.CreateMIMEEntity
    
    
    Call body.SetContentFromText(streamIn, "text/plain;charset=UTF-8", ENC_BASE64)  
    Call body.GetContentAsBytes(streamOut,True)
    ' streamOut noch in eine Datei speichern!'


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein