Reportes con imagenes en Java Server Faces
Deseamos mostrar en el reporte la imagen escudonacional.gif, que está almacenada en
/resources/imagenes
Deseamos mostrar en el reporte la imagen escudonacional.gif, que está almacenada en
/resources/imagenes
En el controller que usamos para imprimir crear el metodo
public static String getPath() {
try {
ServletContext ctx = (ServletContext) FacesContext.getCurrentInstance()
.getExternalContext().getContext();
return ctx.getRealPath("/");
} catch (Exception e) {
JSFUtil.addErrorMessage("getPath() " + e.getLocalizedMessage());
}
return null;
}
En el método imprimir, generar el path mediante el llamado a getPath(), y colocar la
ubicación de la imagen.
private String imprimirGeneralIngresos(List<InformeGeneralIngresos> list, Double
totalenviado, Double totalcomision, Double totalitbm, Double total) {
try {
String ruta = "/resources/reportes/informes/informegeneralingresos.jasper";
HashMap parameters = new HashMap();
String path = getPath() + "resources/imagenes/escudonacional.gif";
parameters.put("P_RUTAIMAGEN", path);
gestorImpresion.imprimir(list, ruta, parameters);
} catch (Exception ex) {
JSFUtil.addErrorMessage("imprimirEnviados() " + ex.getLocalizedMessage());
}
return null;
}
En el diseñador de Reporte
Agregar el parámetro P_RUTAIMAGEN de tipo String
Arrastrar un objeto de tipo image
se muestra el dialogo para seleccionar la imagen
Darle clic en Cancelar para no seleccionar ninguna imagen
se muestra el icono que representa a la imagen
dar clic en el image y buscar en properties , la propiedad Image Expression
dar clic en el boton ...
En el diálogo dar clic en Parameters y seleccionar P_RUTAIMAGEN
Quedaría de la siguiente manera, dar clic en Ok
El icono que se mostraba anteriormente desaparece y queda el área de la imagen que será
reemplaza por la que indiquemos en el controller
Compilar el reporte
Al ejecutar el proyecto se muestra la imagen en el reporte.
Comments