Domino 9 und frühere Versionen > ND8: Entwicklung
Bilder im RichText
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