Skip to main content

Reportes con imagenes en Java Server Faces

Reportes con imagenes en Java Server Faces
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

Popular posts from this blog

JUnit con DataClassG

JUnit con DataClassG 0. ESQUEMA Services: Por cada beans crearemos una clase Services que se encargará de interactuar con el controller para realizar las operaciones de la base de datos. Se crearan los métodos insert, update,delete y los demas metodos para realizar las diversas operaciones. Test: Se crearán las clases para test de las clases Services. Form: Los formularios para la interactuar con el usuario. ProvinciasServices.java colocamos los métodos, insert, update,delete public class ProvinciasServices {    ProvinciasController provinciasController = new ProvinciasController();    public ProvinciasServices() {    }    public Boolean insert (Provincias provincias){        try{            if(provinciasController.insert(provincias)){              return tru...

Primefaces v13

 La versión nueva de primefaces v13.0 elimina el componente <p:repeat>  Consulte los cambios en  https://github.com/primefaces/primefaces/releases/tag/13.0.0 por lo tanto si necesita una solución similar considere utilizar  <p:carousel>  o  <ui:repeat> En la versión 13 genera una excepción