¿Cómo crear informes con recursos adicionales?

Introducción

Este tutorial explica cómo generar Informes que necesitan recursos extra para ser generados, como adaptadores XML para conexiones JDBC, sub-informes, fuentes personalizadas, etc.

Creando el Informe

Desde la versión 1.6-Empire, cuando creas una plantilla de Informe en la plataforma, notarás algunos cambios en la IU:

La plantilla de informe (Report Template) es la plantilla principal de JRXML, mientras que los recursos adicionales pueden ser cualquier recurso que el informe principal necesite generar.

Así que, por ejemplo, si necesitamos generar un Informe que tiene sub-informes definidos en él, cargaremos todos los sub-informes compilados (.jasper) como recursos adicionales:

Estos recursos pueden ser actualizados o eliminados en cualquier momento.

Lo mismo se aplica si tu plantilla de Informe necesita una definición XML para tu servicio web/conector JDBC:

Caso concreto: Fuentes

Las fuentes necesitan ser empaquetadas dentro de un jar. Puedes echar un vistazo a la estructura aquí:

http://jasperreports.sourceforge.net/sample.reference/fonts/#fonts

Básicamente una estructura como ésta:

En el jasperreports_extension.properties debes definir donde está el fonts.xml de tus fuentes:

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.dejavu=net/sf/jasperreports/fonts/fonts.xml

 

fonts.xml: aquí defines dónde debe encontrar el compilador las fuentes.

Mientras que en la carpeta dejavu tienes las fuentes propiamente dichas, en formato .ttf

Cuando tengas el jar, sólo tienes que subirlo como recurso adicional en tu Report:

La JVM (máquina virtual de Java) encontrará las fuentes para tu informe sin necesidad de instalar la fuente en el sistema.