2009-08-19 15 views
11

Estoy buscando un motor liviano de generación de informes java para integrarlo en una aplicación de applet.Motor ligero de generación de informes de Java

Mi primera opción fue Jasper Reports, pero el contenedor tiene más de 2Mb, un poco demasiado pesado (y demasiado hinchado) para mis necesidades. No sé si existe una distribución modular de jaspe, con funcionalidades divididas en varias jarras (como renderizado html, pdf, excel, compilación, tiempo de ejecución, etc.).

Necesito obtener una vista previa del informe usando Swing e imprimirlo. La exportación de PDF es un plus.

Respuesta

1

Si no puede encontrar una solución mejor, debería ser posible crear un archivo JAR desglosado para los informes de Jasper. Se supone que la herramienta GenJar puede construir un archivo JAR en función de sus dependencias estáticas.

Hace mucho tiempo, solía usar la herramienta de ofuscación "Classmaster" de Zelix que le daba la opción de eliminar las clases que no se usaban. Creo que incluso podría haber eliminado los métodos no utilizados, aunque mi memoria es un poco confusa. (Lo usé en un producto de código cerrado ... que luego desapareció en un "agujero negro" IP).

EDITAR: otra opción es ProGuard, que ofusca y elimina como Classmaster, excepto que es de código abierto. (Lamentablemente, parecen haber configurado mal su enlace al sitio web de SF. Pero el enlace anterior funciona)

Por supuesto, si Jasper Reports usa Class.forName(), necesitaría identificar todas las clases relevantes agregarlas como dependencias "raíz" para el herramienta de extracción que utiliza. Además, necesitaría consultar la licencia de Jasper Reports para asegurarse de que se le permite "distribuir" un archivo JAR eliminado.

+0

Jasper carga las clases dinámicamente, necesitará descubrir las dependencias. – sventechie

6

Jasper Reports incluye un jar con funcionalidad básica para previsualizar e imprimir informes. Está empaquetado como jasperreports-x.x.x-applet.jar, con alrededor de 350k.

1

¿Por qué es 2Mb demasiado grande para una biblioteca del lado del servidor? Docmosis tiene un tamaño de jar de menos de 500k, pero requiere OpenOffice en el servidor, por lo que es más pequeño de una manera y más grande en otra. Java no cargará el Jasper de 2Mb en la memoria a menos que use todas las características/clases.

+1

No lo estoy usando en el lado del servidor, pero en el lado del cliente. El applet carga el stream .jasper del servidor y un visualizador de swing lo presenta al usuario. – tuler

4

Sé que esto es un poco tarde, pero con sus requisitos se parece como un ajuste perfecto sería la solución de informes de la empresa donde trabajo pone a cabo: i-net Clear Reports (solía ser i-net cristalinas).

  • visor de peso ligero y simple (similar a un visor de PDF)
  • Muy simple de usar API
  • pueden exportar en un montón de diferentes formatos, incluyendo PDF
  • compatible con cualquier fuente de datos JDBC, o también ajuste manual de los datos
  • puede ejecutar plantillas de Crystal Reports
  • también ofrecemos un país libre y completamente funcional report designer

Compruébalo y cuéntanos lo que piensas.

1

IMHO Chunk Templating engine es el mejor.El archivo jar solo tiene 180 KB! y soporte IF e iteración. Cuan genial es eso !

+1

Para archivos PDF, utilizo Chunk para generar XML que el motor Apache FOP puede transformar sobre la marcha en PDF. –

+0

¿Tiene la funcionalidad Chunk Templating specyfic para los informes? El encabezado de grupos automáticos y los totales/subtotales parecen ser los más importantes. Utilizo (en algún proyecto antiguo) el motor de plantillas para informar "en modo manual", su arduo trabajo. –

Cuestiones relacionadas