JasperReport: Usar imágenes dinámicas desde base de datos (Base64)

JasperReport: Usar imágenes dinámicas desde base de datos (Base64)

La forma mas común de usar logos o imágenes dinámicas en los reportes es que sean administrados via base de datos, en las cuales pueden almacenarse en binario y codificados en Base64. A continuación te mostraremos como hacerlo en estos 2 escenarios.

Software Utilizado: JasperStudio 6.19.0 de 2022.

Paso 1: Base de datos

Lo primero que necesitamos es tener nuestra tabla con los datos, en este ejemplo utilizaremos postgresql.

Estructura de la tabla Imágenes:

Paso 2: Importar los Campos

Se importan los campos al diseño/

Paso 3. Definir el elemento imagen.

El objeto imagen tiene varias formas de importar la imagen.

usaremos la opción 5: Expresión Personalizada

Escenario 1: Binario

Para mostrar una imagen de un campo binario es extremadamente fácil solo hay que poner la referencia del campo en la expresión como fuente.

Propiedad del Elemento Imagen.
Ventana de selección de campos.

eso es todo, la conversion se hace automáticamente.

Escenario 2: Base64

Aunque actualmente es raro que alguna empresa use imágenes se guardadas en Base64 tambien es posbible mostrarlas.

Para este escenario se requieren unos pasos adicionales.

Paso 1. Importar las librerías

JasperReport nos permite realizar programación dentro de los reportes, sea con Java o con Groovy, para poder manipular las cadena Base64 recuperada dela base de datos se necesitará solo una librearía.

En la ventana de imports se agregan las librerías.
Importando java.util.Base64

Luego agregamos la expresión personalizada al control de la imagen.

Eso es todo.

Nosotros y terceros seleccionados utilizamos cookies o tecnologías similares con fines técnicos y, con su consentimiento, para otras finalidades (“interacciones y funcionalidades básicas”, “mejora de la experiencia”, “medición” y “segmentación y publicidad”) según se especifica en la política de cookies. Usted es libre de otorgar, denegar o revocar su consentimiento en cualquier momento.    Configurar y más información
Privacidad