Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: machineslave am 06.09.05 - 09:42:41

Titel: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 09:42:41
Hallo,

kann mir jemand sagen, wie ich über die Backend-Klassen JPGs in ein Richtextfeld importieren kann?

Gruß

Stefan
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: flaite am 06.09.05 - 09:53:59
NotesRichTextItem.EmbedObject.
Hat eine Menge an Beispielen in der hilfe.
Titel: Re: JPG �ber Backend in Richtext importieren
Beitrag von: Thomas Schulte am 06.09.05 - 09:57:44
Nein, das geht nicht.
Und axel bevor du jetzt loslegst. EmbedObject NE import.
Titel: Re: JPG �ber Backend in Richtext importieren
Beitrag von: flaite am 06.09.05 - 10:01:53
Wieso?
Set object = rtitem.EmbedObject _
( EMBED_OBJECT, "", "c:\jim.jpg")
geht nicht?

Ich bin nicht allwissend und lerne gern dazu.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: koehlerbv am 06.09.05 - 10:03:40
Damit erstellst Du ein Attachment. Importieren (einbetten) kann man ein Bild so leider nicht.

Bernhard
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: flaite am 06.09.05 - 10:06:44
Thx.
Hm. Ich kann mich wieder dunkel erinnern, glaub ich.
Geht das über irgendwelche OLE Mittel?

Gruß Axel
Titel: Re: JPG �ber Backend in Richtext importieren
Beitrag von: Roalf am 06.09.05 - 10:18:11
Hallo zusammen,

ja es geht. 
ABER...meines wissens nur über die DXL-Klassen (vielleicht ja auch einfacher, ich würde mich über einen Tipp freuen (*) ) . Denn DXL bedeutet dass man knietief in XML-tags warten muss. Und wenn man in diesem Sumpf endlich Luft bekommt, dan gehts mit den Richtextklassen weiter. Kurz und gut: nichts für mal eben in ein paar Tagen.


(*) und falls jemand dann auch noch einen tipp hat, wie man ein Richtext-Element an eine beliebige Pos. in ein anderes RT einfügt, geb ich einem aus.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 10:28:42
Hallo,

über die DXL-Klassen kann ich aber doch nur komplette Daten in eine DB importieren. Ich möchte aber nur ein Bild in ein bereits bestehendes Dokument importieren.

Stefan
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: flaite am 06.09.05 - 10:46:37
@Roalf: interessanter Beitrag.
Meines Wissens werden in DXL aber eingebettete Objekte als base64 encoded OLE Objekte eingebettet. Und OLE Objekte ist noch einmal etwas anderes als das File selber. Das heisst man müßte aus der Datei
- erst ein OLE Objekt erstellen
- dieses OLE Objekt base 64 encoden
- die entsprechenden Tags in das DXL in die richtige Stelle einfügen?

Axel
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Thomas Schulte am 06.09.05 - 10:51:56
Naja du müsstest erst das Dokument exportieren, dann dort entsprechend ändern und anschließend wieder importieren wobei du das bereits vorhandene Dokument komplett überschreiben müsstest. Ich hab keine Ahnung ob das ein brauchbarer Weg wäre.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: diali am 06.09.05 - 11:04:17
hast Du viele Bilder?

Ich habe es so gelöst:
- die Bilder werden als gemeinsame Bildressource in eine DB eingefügt (dafür wird DXL und Base64 benötigt)
- in der Quelle wird eine Bildresource angelegt und der Name berechnet. Der Name des Bildes steht dann in einem Textfeld.

Ist jetzt zwar nicht genau deine Anforderung aber vielleicht kannst Du etwas damit anfangen.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Thomas Schulte am 06.09.05 - 11:06:00
Hmm Dirk, dann könnte man das aber auch über einen Frontend Agent lösen. Da geht das ja auch. Nur im Backend geht das so einfach nicht.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 11:09:25
Hallo Dirk,

hättest Du mal ein Beispiel, wie ich sowas mit DXL realisieren könnte?
Die einzige Möglichkeit ist wohl, die Bilder per DXL in eine DB zu importieren und dann kann man die Richtextfelder ja einfach per Script in die bestehenden DOkumente kopieren.

Gruß

Stefan
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Thomas Schulte am 06.09.05 - 11:11:02
Noch einmal die Frage, warum eigentlich über den Backend? Was steckt dahinter?
Titel: Re: JPG �ber Backend in Richtext importieren
Beitrag von: diali am 06.09.05 - 11:19:39
@Thomas Schulte
läuft im BackEnd, es wird kein FrontEnd benötigt.

@machineslave
Ich benutze die Class Base64 von Johan Känngård, dort ist mehr implementiert, wie für den Import benötigt wird.

In Initialize müssen noch die Var TempPath und pathName angepasst werden. Mögliche Fehler werden als Dokumente in die DB eingetragen (also erst mit einer leeren DB testen). Importiert werden nur Dateien mit der Erweiterung gif, jpg und jpeg.


Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 12:52:41
@Thomas

Ganz einfach,

auf einer AS/400 wird ein Programm gestartet, welches Daten zusammensammelt. Danach wird automatisch eine Mail an eine Mail-In-DB gesendet, woraufhin ein getriggerter Agent losmarschiert und die Daten importiert.
Da es sich um Artikeldaten handelt, sollen entsprechend dazu auch die Bilder importiert werden.

@Diali

Danke,  ich werd's gleich mal ausprobieren.

Stefan
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: joringel am 06.09.05 - 12:54:23
Dies hier:

http://www-10.lotus.com/ldd/nd6forum.nsf/ShowMyTopicsAllFlatweb/4feed073883d7fb685256f2a0035d3a6?OpenDocument

läuft zumindest nach einem kurzen Test unter 6.5.4 ganz ordentlich.

Gruss
Joringel
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Roalf am 06.09.05 - 13:04:45
@kennwort
yo, so meinte ich das, ich hatte seinerzeit das ganze mit Java umgesetzt und benutze die base64 http://www.koders.com/java/fid0B3CC2E376919039992D79E63729391535061509.aspx

aber die class base64 von diali geht sicher auch.

@joringel
prima Tipp, ich werde gleich mal. Vielleicht ist die welt ja doch einfacher als ich gedacht habe.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Thomas Schulte am 06.09.05 - 13:24:30
läuft zumindest nach einem kurzen Test unter 6.5.4 ganz ordentlich.
Das ist doch nichts anderes als das stinknormale "EmbedAttachment"? Die Datei wird einfach angehängt.
Der Import soll doch dann das Bild anzeigen und kein Attachment.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 13:24:59
@Joringel

G E N I A L. Das ist haargenau das, was ich brauche.

Many many thanks

 8) 8) 8)

Stefan
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 13:26:41
@Thomas

Nein, zwischen embed und import ist ein himmelweiter Unterschied.
Wenn Du ein Bild importierst, wird das Bild angezeigt, während beim embed nur das schnöselige Icon sichtbar ist.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: diali am 06.09.05 - 13:43:03
@joringel
und wieder mal etwas dazugelernt. Danke für den Tipp.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Thomas Schulte am 06.09.05 - 13:47:42
@Thomas

Nein, zwischen embed und import ist ein himmelweiter Unterschied.
Wenn Du ein Bild importierst, wird das Bild angezeigt, während beim embed nur das schnöselige Icon sichtbar ist.
Danke Stefan aber DEN unterschied kenne ich schon seit ein paar Jahren  ;D

Aufpassen muss man aber bei der Lösung auch.
Denn hat der Benutzer in seinen Benutzervorgaben die Einstellung "In-Line-MIME-Bilder als Anhänge anzeigen" ausgewählt war der ganze Aufwand für die Katz. Dann sind es nämlich wieder Attachments.

Das war es übrigens auch was bei mir da gefehlt hat. Sonst ist das wirklich eine saubere Lösung die mit relativ wenig Aufwand auch auf unterschiedliche Grafiktypen zu erweitern ist.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: machineslave am 06.09.05 - 15:48:33
hmm.. die Einstellung ist bei uns standardmässig nicht aktiviert, aber gut zu wissen und danke für den Tip.

Stefan
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: TMC am 07.09.05 - 00:26:38
Naja du müsstest erst das Dokument exportieren, dann dort entsprechend ändern und anschließend wieder importieren wobei du das bereits vorhandene Dokument komplett überschreiben müsstest. Ich hab keine Ahnung ob das ein brauchbarer Weg wäre.


Es reicht doch das Dok in einen Stream zu laden, den Stream zu modifizieren, und dann wieder zurückzuschreiben. Base64 ist da noch ein Thema, d.h. das Bild-File muss noch in Base64 encoded werden, bevor man es in den Stream reinsetzt.



Hier übrigens noch ein Weg über LotusScript, WinAPI und NotesAPI, um ein Bild via Backend zu importieren:
AtNotes BP: Bilder in ein Richtextfeld importieren (http://www.atnotes.de/index.php?topic=13839.0)
(siehe Kap. 8 )
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: flaite am 07.09.05 - 06:04:39
imho sind Streams eine Abstraktion, um bytes (zusammengefasst als characters oder eben als bytes) von einem Ort zum anderen zu transportieren.
Nicht unbedingt etwas, das man gleichzeitig beschreiben und lesen könnte.
Eher: Neues Bild mit Quelle Datei mit einem Stream in ein NotesDokument, möglicherweise als dxl (Ziel) schreiben. Man kann in diesen Prozess allenfalls einen Filter legen, der die einzelnen bytes base64 enkodiert.
Jedoch nicht: Stream laden, Stream modifizieren, Stream neu reinschreiben.
Das wären dann eher 2 Streams einer zum laden und 1 zum neu reinschreiben.
In den Java Klassen gibt es noch RandomAccessFile zum lesen und schreiben, das ist aber was anderes und imho gibt es dafür keine Entsprechung in den Notes Klassen sowie wird auch in Java selten benutzt.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: Thomas Schulte am 07.09.05 - 09:01:04
Hier übrigens noch ein Weg über LotusScript, WinAPI und NotesAPI, um ein Bild via Backend zu importieren:
AtNotes BP: Bilder in ein Richtextfeld importieren (http://www.atnotes.de/index.php?topic=13839.0)
(siehe Kap. 8 )
Hmm Mathias. Sollten wir den Artikel nicht vielleicht überarbeiten? Wir haben hier nämlich zwei Methoden die auch im Backend funktionieren würden.
Titel: Re: JPG über Backend in Richtext importieren
Beitrag von: TMC am 07.09.05 - 22:59:26
@Axel:
Jo, Du hast natürlich Recht, "den Stream zu modifizieren" ist so einfach natürlich nicht möglich.
Vielmehr müsste man also sich das Dokument in ein Stream holen, und mit dem SAX-Parser die Sachen holen die man braucht, neuen Stream zusammenstellen zusammen mit dem Base64-encodeten Bild wieder zusammenstellen.

@Thomas:
Gerne. Hast Du Lust, die Inhalte von hier aufzubereiten? Freiwillige vor  ;D