Saltar la navegación

4.6.- Añadir imágenes.

Las imágenes son representaciones visuales de objetos que se almacenan en un fichero al que aplica un formato concreto.

Cuando se añaden imágenes a un informe, éstas no pasan a formar parte del mismo, sino que se añade una expresión con la ruta absoluta de la imagen, por eso, cuando se arrastra un elemento de imagen en el diseñador, iReport muestra un cuadro de diálogo selector de ficheros. Esta es la forma más conveniente de especificar una imagen que se va a usar en el informe. La expresión se establece como el valor de la propiedad Image Expression de la imagen. He aquí una expresión de ejemplo:

"c:\usuarios\alumno\Documentos\Imagenes\informes\flor.jpg".

Ilustración de una captura de pantalla de la paleta.
Montaña Martín Vergel (Elaboración propia)



Reflexiona

¿Crees que es apropiado este modo de gestionar imágenes? ¿Qué pasa cuando movemos el archivo .jrxml de sitio? ¿Cómo resolverías este problema?
Ilustración en donde aparece la ventana de propiedades de una imagen.
María José Navascués González (Elaboración propia)

Parametrizar la Imagen Image Expression:

Este sistema tiene un gran impacto en la portabilidad informe, ya que probablemente el archivo no se encuentre en otra máquina (es decir, después de implementar el informe en un servidor web o de ejecutar el informe en un equipo diferente). Para solucionar este problema podemos parametrizar la propiedad Image Expression de la imagen estableciendo su valor a algo similar a esto:

En tiempo de ejecución en una aplicación hipotética, el valor del parámetro directorio_de_imagenes se puede ajustar mediante la aplicación en sí misma. Podemos proporcionar un valor por defecto para el parámetro. La ventaja de esta solución es que la ubicación del directorio en el que están las imágenes no se define directamente en el informe, sino que se proporciona de forma dinámica.

$P{DIRECTORIO_DE_IMAGENES} + “miImagen.png” 

Usar el Classpath

Otra opción es utilizar el Classpath Cuando una imagen se encuentra en el Classpath, sólo se requiere el nombre de la imagen para encontrarla. De forma predeterminada, al ejecutar un informe, iReport agrega el directorio en el que reside el informe al Classpath. Si tenemos el informe y la imagen en el mismo directorio, basta con establecer el valor de Image Expression al nombre del fichero con la imagen. Puesto que el directorio del informe se agrega a la ruta de clases, la imagen se encuentra de forma automática.

Este proceso sigue siendo válido si la imagen se encuentra en un subdirectorio de un directorio incluido en el Classpath. En ese caso, se deberá especificar la ruta completa del recurso.