Export zu HTML mit eingebetteten Bildern mit Jasper Report
Kann Jasper Report exportieren, um HTML mit eingebetteten Bildern?
Habe ich die Ausgabe von jasper-reports als Excel-Datei, PDF -, RTF.
Aber multiplay HTML-Dateien.
Es ärger für mich zu verwalten, nicht die einzigen report-Datei, aber viele Dateien und Ordner im HTML-Fall.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass jasper reports hat eingebaute Unterstützung für diese, so dass Sie würde haben, um roll-out Ihre eigene Implementierung. Sie können dieses Verfahren verwenden, zum einbetten von Bildern.
Also erstmal würden Sie verwenden, java-xml-parser zu finden, alle image-tags in der html -http://www.mkyong.com/tutorials/java-xml-tutorials/. Dann würden Sie Lesen, Sie alle Dateien, die, konvertieren Sie Sie in base64-string http://www.xinotes.org/notes/note/736/ und ersetzen Sie die
img
's-src mit den oben genannten format.Lösung:
Vollständige code:
War ich in der Auseinandersetzung mit diesem für die letzten paar Tage, und schließlich gelöst. Meine Berichte in einer web-Umgebung, so konnte ich die
net.sf.jasperreports.j2ee.servlets.ImageServlet
dienen die Bilder. Dies erfordert ein bisschen Einrichtung aber.Verwenden Sie die
JRImageRenderer
zum Rendern der Bilder in den Bericht selbst:wo
$F{image_data}
ist die binären Bilddaten.Beim exportieren des Berichts benennen
WebResourceHandler
als HTML-Ressource-handler.Überprüfen, wenn Sie generieren jetzt einen HTML-Bericht aus und untersuchen Sie die Quelle, Sie sollten etwas sehen wie
<img href="http://www.mywebsite.com/report/image?image=img_0_0_2.png" />
.Nun müssen Sie zum aktivieren der
ImageServlet
, so kann esabfangen und erfüllen das Bild Anfragen. Fügen Sie den folgenden block
Ihre
web.xml
Datei:(Beachten Sie, dass die
/report/image
Pfad entspricht dem URL-argument passierten wir dieWebHtmlResourceHandler
.)Starten Sie den webserver und versuchen, generieren einen HTML-Bericht einmal mehr. Es immer noch nicht funktionieren, natürlich, aber kopieren Sie die URL des Bildes und fügen Sie ihn in Ihren browser ein. Sollten Sie eine Fehlermeldung erhalten, aus der
ImageServlet
dassDas Letzte, was zu tun ist, fügen Sie die
JasperPrint
Objekt an die session, also dieImageServlet
weiß, welches Bild zu dienen. In JSP können Sie das wie folgt:Nun sollte es funktionieren.
Wie bereits von ilia, bis vor kurzem Daten-uri war nicht cross-kompatibel, so HATTEN Sie mehrere Dateien. Vielleicht möchten Sie eine Datei-Erweiterung-Anforderung mit Jasper auf Anfrage eine option, um html speichern als eine Datei mit eingebetteten Daten-uris
Eine kleine Verbesserung zu Dave Jarvis Lösung.
Statt hart-Codierung der mime-Typ im
Können Sie versuchen, entdecken Sie den mime-type wie dieser: