Quiero mostrar una imagen en un informe de jaspe. Tengo el siguiente en la .jrxml:¿Cómo mostrar una imagen en el informe de jaspe?
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
La imagen logo.jpg está en el mismo directorio que el .jrxml. Simplemente poniendo eso no funcionó para mí. Busqué en Google un poco y descubrí que el informe jasper considera lo que puse en .jrxml como una ruta relativa al directorio JVM y que para cambiar esto necesito pasar como un parámetro "REPORT_FILE_RESOLVER" un FileResolver que devuelve el archivo. Por lo tanto, hice lo siguiente en mi .java (se encuentra en el mismo lugar que el .jrxml y la imagen)
FileResolver fileResolver = new FileResolver() {
@Override
public File resolveFile(String fileName) {
return new File(fileName);
}
};
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("REPORT_FILE_RESOLVER", fileResolver);
...
que debe devolver el archivo esperado, pero aún así obtener una
net.sf.jasperreports.engine.JRException: Error loading byte data : logo.jpg
at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:301)
at net.sf.jasperreports.engine.util.JRLoader.loadBytesFromLocation(JRLoader.java:479)
at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:180)
...
¿Qué estoy haciendo mal?
Gracias!
Ver: http://stackoverflow.com/a/39320863/59087 –