Las imágenes son representaciones visuales de objetos que se almacenan en un fichero al que aplica un formato concreto.
4.6.- Añadir imágenes.
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"
.
Reflexiona
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.