Domino 9 und frühere Versionen > ND8: Entwicklung

Bilder im RichText

<< < (4/5) > >>

pram:
bei Attachments ist ein <attachmentref> herum:


--- Code: ---<attachmentref name="run.pdf" displayname="run.pdf">
<picture width="41px" height="47px">
<gif originalformat="notesbitmap">
R0lGODlhKQAvAOcAAP///wAAAOjo6LCwsODg4ODg6EgAAPjY2NjY2EhISMjI0KiosNjY4MDAwMDA
yNDQ0KioqNDQ2PDw8Li4wKCgoPgYGGBgYLCwuOjo8PAICPgIEPggKPgoKFBQUMjIyJiYmKCgqMgA
AOCAgOgACPgQGPgYIPgwMPh4ePiIiEBAQFhYWLi4uOioqOiwsOjg6PgQEPggIPgoMPgwOPhoaPiA
....
LJBCEjh0QcagKLvUVW02WnYuZpppOuUdZ50RYNK1hBduuOErEODn4ow3vqeeDVnHFnTW8UlddJdX
7hCda9XpOeV19snncnmO3vnpjYv+UkAAOw==
</gif>
</picture>
</attachmentref>

--- Ende Code ---

Ein Preprocessing mit XSLT sollte es ermöglichen, alle  <attachmentref> und Unterelemente zu entfernen

Den Base64-Stream kann man übrigens mithilfe des NotesMimeEntity wieder in binär umwandeln

Gruß
Roland

magic_halli:
So, hier mal ein Auszug aus der DXL (xml)... mit 'ConvertNotesBitmapsToGIF = False'. Somit sieht man erstmal die Tags in ihrer eigentlichen Form.

1. Ein BMP, welches inline im Mailtext sichtbar ist:

--- Code: ---<par def='2'><picture height='768px' width='1024px'><notesbitmap>
<!-- hier der Base64-Stream des BMP -->
</notesbitmap></picture></par>

--- Ende Code ---

2. Ein Icon eines Attachments:

--- Code: ---<attachmentref name='BMP-Test.bmp' displayname='BMP-Test.bmp'>
<picture height='47px' width='78px'><notesbitmap>
<!-- hier der Base64-Stream des Icon -->
</notesbitmap></picture></attachmentref>

--- Ende Code ---

Rico.

magic_halli:

--- Zitat ---Ein Preprocessing mit XSLT sollte es ermöglichen, alle  <attachmentref> und Unterelemente zu entfernen.
--- Ende Zitat ---
Aha?! Wie meinst Du das bzw. was soll das im Klartext für mein Problem heißen?

EDIT: Ach, das soll heißen, dass ich mittels XSLTransformer aus der DXL die Tags <attachmentref> und alles was dazwischen liegt entfernen soll? Erst danach wird mittels MimeEntity.SetContentFromBytes der Stream in Binärdaten umgewandelt und die Files gespeichert.
Hab ich das richtig interpretiert?

Rico.

pram:
Die DB von openntf.org verwendet genau die Technik die ich skizziert habe:

--- Zitat ---- uses internal DXL and MIME classes for extracting the images and decode base64 data

--- Ende Zitat ---

ich hab mal den Code überflogen, die "schnipseln" die Image-Tags mit String-Operationen raus, ich würde das eher über einen SAX-Parser machen (xslt ist hier wohl overkill), man kann dann den DXL-Exporter und den SAX-Parser kaskadieren:

Der Sax-Parser hat als Eingabestrom den NotesDXLExporter.

der SAX-Parser hat dabei 3 relevante Events: Sax_Start_Element, Sax_End_Element, Sax_characters.
dann baust dir eine "State-Machine":

--- Code: ---dim gif%, jpg%, attachment%
sub Sax_start_element (source, elName, attr)
  select case lcase(elName)
     case "attachmentref": attachment = attachment + 1 ' Attachment-Tag betreten
     case "gif": gif = gif + 1 ' gif-tag betreten
  end select
end sub

sub Sax_end_element (source, elName)
  select case lcase(elName)
     case "attachmentref": attachment = attachment - 1 ' Attachment-Tag verlassen
     case "gif": gif = gif - 1 ' gif-tag verlassen
  end select
end sub

sub Sax_characters(...)
  if attachmentref = 0 and gif = 1 then ' keinen Attachmentref-Tag betreten, aber einen GIF-Tag
    ... exportiere GIF
  end if
end sub

--- Ende Code ---

soweit in etwa klar?
analog dazu kannst du auch noch die Fileattachments extrahieren

Gruß
Roland

magic_halli:

--- Zitat ---Die DB von openntf.org verwendet genau die Technik die ich skizziert habe
--- Ende Zitat ---
Wo finde ich denn diese DB - ich finde die einfach nicht.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln