Hallo Notes-(Java-)freunde ;)
ich habe ein Problem beim laden von Bildressourcen in Java.
Unter Notes 8.5.1 habe ich unter dem Punkt Ressourcen ein Bild "logo.jpg" hinzugefügt.
Wie kann ich denn diese Datei in meine NotesAgent class laden?
Beim versuch mit
java.awt.Image awtImg = java.awt.Toolkit.getDefaultToolkit().createImage("Res\\logo.jpg");
com.lowagie.text.Image image2 = com.lowagie.text.Image.getInstance(awtImg, null);
bekomme ich folgende Fehlermeldung in der Javaconsole:
java.io.IOException: java.awt.Image fetch aborted or errored
at com.lowagie.text.Image.getInstance(Unknown Source)
at com.lowagie.text.Image.getInstance(Unknown Source)
at JavaAgent.NotesMain(Unknown Source)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
Hat jemand von euch eine Idee? Bzw. ist es überhaupt möglich diese Ressourcen zu nutzen?
Vielen Dank schonmal
Stefan
Wenn du magst, kannst du die jpg testweise irgendwo ins Dateisystem legen und dann mit dem folgenden Code drauf zugreifen:
String pthImg = "C:/temp/logo.nsf";
java.awt.Image awtImg = java.awt.Toolkit.getDefaultToolkit().createImage(pthImg);
if (awtImg == null) throw new IllegalStateException("Die Datei \"" + pthImg + "\" kann nicht geladen werden. PDF Generierung wird abgebrochen.");
com.lowagie.text.Image image2 = com.lowagie.text.Image.getInstance(awtImg, null);
Danke für die Antwort.
hab jetzt noch eine Lösung gefunden. Vllt. ja auch für dich hilfreich:
java.awt.Image awtImg = ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("logo.jpg"));
Damit bekommt man den InputStream und kann diesen in ein Bild umwandeln.
scheint zu funktionieren.
eine andere alternative:
ich lade mir das bild in ein RT-Item im profilDoc
und hole mir dann das embedded object und lese den inputstream ein.
EmbeddedObject eo = pdoc.getAttachment("logo.jpg");
java.awt.Image awtImg = ImageIO.read(eo.getInputStream());