Autor Thema: DXL und embedded objects  (Gelesen 2218 mal)

Offline jonesfxr

  • Frischling
  • *
  • Beiträge: 4
DXL und embedded objects
« am: 09.06.06 - 08:11:14 »
Hi,

folgendes Problem:
Ich habe eine Mail in die embedded objects oder auch Bilder
eingefügt sein können.
Die Mail wurde nach DXL exportiert und als File abgelegt.
Jetzt möchte ich dieses Object oder Bild aus dem DXL-File extrahieren
und in einer eigenen Datei ablegen (VB Applikation).
Parsen ist nicht das Thema.
Jetzt habe ich auch schon etliche Threads dazu gelesen.
Soweit ich es verstanden habe, ist der Code dieser Objekte oder Bilder
Base64 kodiert.  Hat dazu mal jemand ein (funktionierenden) Link
auf einen SampleCode zum decodieren?
(Die ausprobierten Links waren alle tot)

Dann stand da noch was von Huffman bzw. LZ1 Komprimierung.
Bahnhof???
Und dann habe ich noch gelesen, dass Notes noch Header-Infos
in die Daten schreibt. Die müsste ich wegschnippseln, oder?
Hat jemand dazu Infos?

Gehen wir im zunächst mal von nem Bild aus.
Wenn das klappt, wage ich mich an ein embedded object, wie
zum Beispiel eine eingebundene Excel-Tabelle.


Gruss
jones :-)=

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: DXL und embedded objects
« Antwort #1 am: 09.06.06 - 09:11:44 »
siehe http://www.nsftools.com/tips/NotesTips.htm
da findest Du ein Script zum en/decoden von Base64 Strings.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline jtuemmer

  • Frischling
  • *
  • Beiträge: 19
Re: DXL und embedded objects
« Antwort #2 am: 07.07.06 - 10:02:38 »
Format von Bildern in DXL Dateien
Beim Export nach DXL können für den DXL Exporter verschiedene Parameter gesetzt werden. Einer der Parameter steuert, ob eingebettete Bilder als "notesbitmaps" oder als "gifs" exportiert werden. Das "notesbitmap" Format ist nicht weiter dokumentiert und kann daher nur durch Ausprobieren wieder in ein Fromat überführt werden, das andere Anwendungen verstehen. Der Code der das dann macht, dürfte aber wohl mit großer Wahrscheinlichkeit so seine Schwierigkeiten mit Backward-Compatibility haben. Es gibt auch keine API in Notes/DOMINO, die "notesbitmap" in ein anderes Format (z. B. jpg, gif, bmp etc.) konvertiert. Daher meine Empfehlung: Beim DXL Export Bilder immer in gif konvertieren lassen.

BASE64 Encoding
Unabhängig davon, wie der Export erfolgt, werden die Binäredaten aller in Notes/DOMINO eingebetteten Objekte beim Export nach DXL BASE64 codiert, weil sie ansonstenfür ein XML Dokument ungültige Zeichen beinhalten würden, die ein Parsen des XML unmöglich machen würden. Beim Zugriff auf die Objekte aus der DXL Datei heraus ist es daher zunächst erforderlich, durch BASE64 Decodierung zunächst die Binärdaten des ursprünglichen Objektes wieder herzustellen.

Kompriemierung
Eingebettete Objekte können in Notes/DOMINO komprimiert werden. In welcher Art (Huffman oder LZ1) die Kompression erfolgt, ist abhängig von den Einstellungen des Notes Clients durch den das Dokument erzeugt wurde. Damit ist es unmöglich, für alle Dokumente vom gleichen Kompressionsalgorithmus ausgehen zu können. Grundsätzlich müsste also ein Programm, dass auf die Objekte zugreifen möchte, beide Algorithmen unterstützen und automatisch erkennen, ob das Objekt komprimiert ist und wenn ja, mit welchem Algorithmus.

Beide Kompressionsmechanismen sind nicht durch API Funktionen zugänglich, sodass ein Dekomprimieren der Binärdaten per Programm ausserhalb von Notes nicht möglich ist - insbesonder für den LZ1 Algorithmus. Wenn eingebettete oder angehängte Objekte komprimiert sind, dann können Sie definitiv nicht aus dem DXL des Dokumentes extrahiert werden. Der einzige Weg beteht darin, die Objekte nativ aus Notes heraus zu exportieren.


Trotzdem möchte ich auch an dieser Stelle darauf hinweisen, dass ich selbst ein Tool entwickelt habe, dass diese Art von Exports ermöglicht. Allerdings greift diese Tool auf eine Reihe verschiedener Technologien zurück. Es nutzt im Kern JAVA, greift auf Notes über das C-API zu und jongliert ein Wenig mit den DXL Dateien. Alleine die Entwicklung hat ungefähr ein Jahr in Anspruch genommen. Nur so als Tip. Wenn Interesse daran besteht, dann kann ich gerne weitere Auskünfte dazu geben. Meld' Dich einfach bei mir (jochen.tuemmers@gmx.de)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz