Consultor tecnológico de desarrollo de proyectos informáticos.
Ingeniero Informático *
Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación
Somos expertos en Java/J2EE
Regístrate para votar
Integración de JasperReports con PHP
Introducción
En este tutorial vamos a explicar con ayuda de un ejemplo práctico como podemos integrar JasperReports en nuestras aplicaciones PHP. JasperReports es una herramienta escrita en Java de código abierto (open source) para generar informes, por lo que tendremos que, de alguna forma, integrar dentro de nuestras páginas PHP llamadas a clases Java. Para ello vamos a usar un Puente PHP/Java. Nuestro compañero Juan Alonso hizó hace algún tiempo un tutorial (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=PuentePHPJava) precisamente sobre este tema, donde nos enseña paso a paso como instalar y configurar nuestro puente PHP/Java.
Después de leer el anterior tutorial y una vez instalado el puente PHP/Java en nuestro servidor vamos a lo que nos interesa: integrar JasperReports en nuestros scripts PHP.
Librerías requeridas
- Librería de JasperReports (http://jasperforge.org/).
- JDK 1.3 o posterior.
- Librería Jakarta Commons Digester Component (http://jakarta.apache.org/commons/digester/)
- Librería Jakarta Commons BeanUtils Component (http://jakarta.apache.org/commons/beanutils/)
- Librería Jakarta Commons Collections Component (http://jakarta.apache.org/commons/collections/)
- Librería Jakarta Commons Logging Component (http://jakarta.apache.org/commons/logging/)
- Si queremos conexión JDBC con base de datos tenemos que tener el Driver JDBC 2.0.
- Si queremos exportar nuestros informes a PDF necesitamos la librería iText (http://www.lowagie.com/iText/)
- Si queremos exportar nuestros informes a XLS necesitamos la librería Jakarta POI (http://jakarta.apache.org/poi/)
Configuración
Lo primero que tenemos que hacer es importar las librerías necesarias para usar JasperReports dentro de nuestrás páginas PHP.
Este código carga en el CLASSPATH todas las librerías situadas en un directorio determinado, donde hemos colocado nuestras librerías anteriormente mencionadas. Una vez que tenemos nuestro CLASSPATH preparado vamos a ver como podemos compilar, rellenar y exportar nuestros informes.
Ejemplo práctico
El siguiente código utiliza instrucciones Java para llamar a los métodos de JasperReports que compilan, rellenan y exportan a PDF un determinado informe.
Una vez ejecutado este script PHP se habrá generado un fichero pdf en el directorio especificado.
A continuación vamos a ver un ejemplo completo montado sobre una pequeña aplicación PHP.
Despúes de seleccionar un determinado documento y pulsar el botón de "Enviar" se compila, rellena (los informes no acceden a base de datos por lo que no se "rellenan" realmente) y se exporta a formato pdf.

¡¡¡ Ya tenemos nuestro informe de ejemplo !!!

Aquí os dejo un zip con los ficheros utilizados en este tutorial (informes jrxml y página PHP).
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
Comentarios
-
2010-07-19 - 18:38:22nosferatu9256Yo estaba buscando esto, muchas gracias por el aporte, solo falta que tu puedas hacer consultas y mandarlas a un reporte en especifico. Me ayude de otra pagina para completar este tutorial, porque ya le falta un poco de actualización. Pero muy padre, muchas gracias.
-
2010-07-19 - 16:51:56nosferatu9256Gracias por este aporte, saludos
-
2009-12-23 - 18:45:17LWSque tal oye soy nuevo en esto y me encantariqa
entederle a esto si podrias postear el codigo entero para poder entederle bien por fa vor te lo agradceria
infinitamente es que asi no le entiendo mucho me ayudarias mucho si postearas el codigo de ejemplo completo
-
Tito Peralta2009-08-11 - 07:33:22 PMHola muy buen tutorial, queria agradecerles y comentarles algunos problemas que tuve por ser la primera vez que hago esto: Deben bajarse todas las librerias del jasperreports es decir, del la version que bajen, bajar el .zip y copiar todas las librerias que aparecen en la carpeta lib, no solo el jasperreports-x.x.jar Voy a escribir proximamente sobre como ejecutar un reporte con parametros y consultas a una base mysql desde php en mi blog www.ideas.blogid.ec Saludos
-
LEOPOLDO GUZMAN2009-08-07 - 09:46:24 PMhola como estas... solo preguntarte el nombre o la version de las librerias que se requieren... saludos excelente tutorial....
-
Lopez2009-07-21 - 01:38:12 PMbuenas tardes... queria hacerte una pregunta sobre el articulo que escribes... el primer paso para generar el reporte, seria crear la plantilla (jrxml) con iReport por ejemplo... y luego con el codigo que tu has puesto nos comunicamos desde php con la aplicacion jasperreports... mi pregunta es: si el informe lo tengo que generar tomando los datos desde una base de datos (mysql), como paso los parametros necesarios para que el informe se genere con los datos de una determinada factura, por ejemplo... la consulta la realizaria jasperreport?? o la consulta se realiza desde php y los datos devueltos se pasan como parametros a la plantilla un saludo y gracias de antemano!!!!








