JasperReports el report no encuentra las fonts configuradas en tiempo de ejecuci贸n

PROBLEMA:聽 El informe no funciona porque no encuentra las fonts ya que estas pueden variar de una JVM a otra.

Tendr铆amos una excepci贸n del tipo…

JRFontNotFoundException: Font 'Arial' is not available to the JVM.

SOLUCI脫N:

  1. Instalar las fuentes en la m谩quina virtual, esto depender谩 un poco del sistema operativo, en linux en general se puede optar por instalar el paquete ttf-mscorefonts, para asegurarnos de las fuentes disponibles en nuestra JVM podemos ejecutar el siguiente c贸digo:
    public static void main(String[] args) throws Exception {
                System.out.println(Arrays.asList(GraphicsEnvironment
                        .getLocalGraphicsEnvironment().getAvailableFontFamilyNames()));
    }
  2. Tambi茅n podemos hacer que Jasper ignore las fuentes configuradas y las cambie por alguna de las que tenga disponibles, para esto hay que insertar la siguiente propiedad en el report:
    <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

jasperReports el navegador no muestra los links de un pdf

PROBLEMA:聽 Un report exportado en PDF y visualizado desde un navegador no muestra los links, puede ser una medida de seguridad del visor PDF del navegador que podr铆a detectarlo como un posible XSS?, cuando te descargas el fichero y lo abres con Adobe Reader todo es correcto.

 

SOLUCI脫N:聽 Configurar el Link Target de los enlaces como:聽 芦Parent禄 para que se muestren correctamente.

JasperReports subreport con conexi贸n una Base de Datos distinta al Report

Construyendo un Report que incluye diferentes subreports con Jaspersoft Studio 6.01 me he encontrado con el problema de ejecutar un subreport con una conexion a base de datos diferente a la del Informe principal.

SOLUCI脫N:

  1. Crear un parametro en el Report principal en el que configuramos la conexion para el subereport.

Captura de pantalla 2015-09-24 a las 12.33.29

2. En la llamada al subreport, pasarle el parametro conexi贸n en el campo: 芦connectionExpresion禄

Captura de pantalla 2015-09-24 a las 12.36.56

El c贸digo fuente en XML quedar铆a as铆…

<connectionExpression><![CDATA[$P{subreportConnection}]]></connectionExpression>
<subreportExpression><![CDATA["file:subreport.jasper"]]></subreportExpression>

TIBCO Jaspersoft studio 6.1

Esta herramienta es la 煤ltima evoluci贸n del bien conocido editor iReport. 聽En esta versi贸n est谩 construida sobre la plataforma Eclipse y ofrece una soluci贸n m谩s completa que el viejo editor extendiendo sus capacidades y funcionalidad.

Resumiendo mucho para los que no est茅n familiarizados con la herramienta, jaspersoft studio permite entre otras cosas la generaci贸n de informes preparados para ser compilados y ejecutados con la libreria Jasper Reports que es la librer铆a de c贸digo abierto m谩s popular a la hora de generar informes, esta librer铆a est谩 escrita completamente en Java y permite la utilizaci贸n de cualquier tipo de origen de datos adem谩s produce documentos 芦pixel-perfect禄 que pueden verse, imprimirse o exportarse en m煤ltiples formatos 聽como: HTML, PDF, Excel, OpenOffice, Word etc…

TIBCO Jaspersoft studio es una pieza m谩s de una compleja suite orientada al BI y al Data mining incluyendo servidores de informes, interactive reporting y complejos editores para la generaci贸n de informes (que son almacenados en xml bajo la extensi贸n .jrxml para posteriormente ser compilados bajo la extensi贸n .jasper ).

M谩s informaci贸n acerca de este producto en la web聽Jaspersoft

 

Detectar en opencms cuando en un containerpage estoy cargando un detail

La situaci贸n que se describe a continuaci贸n est谩 probada para las versiones 8 y 9 del opencms.

Recientemente hemos tenido un problema que consist铆a en extraer propiedades de un CmsResource a partir de la uri, para ello se puede insertar 聽sin problema en el template un peque帽o script el cual partiendo de la聽uri desde la que es invocado聽obtenga un objeto CmsResource y a partir de este su CmsUUID etc… esto puede conseguirse de forma sencilla como sigue:

Leer m谩s

Cambiar tipo mime de un fichero

Recientemente me ha pasado que alg煤n editor modifica la codificaci贸n de un fichero como consecuencia si yo tengo un fichero .php que muestre una palabra con acentos y el encoding del fichero no coincide con el encoding que yo le estoy diciendo en el 芦meta禄…pues problema al canto y caracteres raros por ah铆…

El encoding se puede solucionar guardando el fichero en el encoding apropiado (algunos editores soportan esta opci贸n) pero para linux (Mac) esta es la soluci贸n m谩s sencilla que he encontrado.

Soluci贸n en linux:

Para identificar que encoding tiene un fichero concreto:

 $file --mime nombrefichero.php 

Esto nos produce una salida…

 nombrefichero.php: 聽 聽 聽 聽 text/plain; charset=iso-8859-1

Para reconvertir al formato que deseamos por ejemplo a utf-8:

 聽iconv -f iso-8859-1 -t utf-8 nombrefichero.php > nombrefichero_utf8.php

 

*NOTA: cuidado con intentar encodear un fichero formato ascii a utf-8 porque ascii ya es utf-8 por lo que la reconversi贸n no se lleva a cabo.

Instalaci贸n de adAS en Ubuntu 12.04

El AdAS es un servidor de autenticaci贸n avanzado que realiza funciones de proveedor de identidad con un entorno gr谩fico de configuraci贸n integrado que facilita su administraci贸n, puesta en marcha y mantenimiento. El software de administraci贸n y gesti贸n que se ofrece est谩 escrito en PHP,聽 Se puede descargar de la web: http://www.adas-sso.com/es/聽 es opensource pero no tiene ninguna documentaci贸n de instalaci贸n o de uso, reservandose esta para el momento de contrataci贸n de servicios profesionales con la empresa, este aspecto es el que menos me ha gustado del producto que ha hecho que simplemente para verlo funcionando haya sido un proceso de prueba/error permanente.
Leer m谩s

Directiva trim whitespaces

En ocasiones el uso de etiquetas de terceros o la iteraci贸n masiva en bucles hace que se introduzcan muchos espacios inecesarios聽que pueden hacer que el tama帽o de nuestras p谩ginas crezca de forma innecesaria, afortunadamente desde la especificaci贸n JSP 2.1 existe una directiva para eliminar todos estos espacios innecesarios.

La soluci贸n inmediata en un jsp ser铆a:


<@ page trimDirectiveWhitespaces="true" >


Si queremos generalizarlo En el web.xml de聽 nuestra aplicaci贸n podemos hacer que se aplique a determinados patrones.

<jsp-config>
 <jsp-property-group>
  <url-pattern>*.jsp</url-pattern>
  <trim-directive-whitespaces>true</trim-directive-whitespaces>
 </jsp-property-group>
</jsp-config>

Acceso a opencms basado en CMIS – OpenCMIS

Opencms a partir de su versi贸n 8.5 cumple con la especificaci贸n CMIS.

CMIS, que significa Content Management Interoperability Services, es un est谩ndar OASIS聽 dise帽ado por por los principales fabricantes de ECM y para la industria de ECM.聽CMIS permite acceder a los sistemas de gesti贸n de contenidos que implementan CMIS de聽 una forma normalizada e interoperable.

Con CMIS podemos crear aplicaciones que no tengan que limitarse a un sistema de gesti贸n de contenidos concreto y permite asegurar el futuro de las aplicaciones desarrolladas e integradas con los repositorios con soporte CMIS.聽El est谩ndar ofrece un cat谩logo completo de funcionalidades y es capaz de manejar una amplia variedad de sistemas de gesti贸n de contenidos. Con CMIS podemos manejar los contenidos, metadatos de contenidos, control de versiones, contenidos de carpetas, asociaciones y transferencia de ficheros, tambi茅n contempla un lenguaje de consulta, muy parecido a SQL, que permite hacer b煤squedas por contenidos, metadatos, contenido de un documento, etc…

Leer m谩s