Alfonso Blanco Criado

Consultor tecnológico de desarrollo de proyectos informáticos.

Ingeniero Informático *

Creador del blog Rueda Lenticular

Charla sobre Pluto

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2009-02-16

Tutorial visitado 49.657 veces Descargar en PDF
Integración de JasperReport en PHP

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

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).

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2014-07-14-23:53:57

Autor: epavezllanca

disculpa como puedo hacer un reporte con gráficos en java mas específicamente en netbeans des de mysql.

Fecha publicación: 2012-06-25-04:52:26

Autor: martinjose8

q buen aporte!

Fecha publicación: 2011-03-16-15:19:52

Autor: ktyk

Hola a tod@s, Primero gracias por este tutorial me ha sido de mucha utilidad.

Espero que me puedan ayudar lo que ahora quiero es modificar estas lineas:
# $dir ="D:tutorial";
# $jrDirLib = "D:tutoriallib";

con una direccion así para que se pueda acceder desde el host
# $dir ="127.0.0.1tutorial";
# $jrDirLib = "127.0.0.1tutoriallib";

Es decir no utilizar la ruta fisica? puedo hacer eso?
Talvez me pueden ayudar?
Graciasss de verdad por su tiempo! :)
Saludos Ktyk-

Fecha publicación: 2011-01-26-00:33:19

Autor: Jaimeaga

Hola, estoy tratando de realizar el ejemplo pero se me presenta un problema, ya tengo bien instalado el punte de php con java y lo que me sale cuando se ejecuta el reporte es:

Fatal error: Uncaught exception 'JavaException' with message 'Java Exception java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JasperCompileManager java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JasperCompileManager at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) ' in /var/www/tutorial/index.php:29 Stack trace: #0 /var/www/tutorial/index.php(29): *No Class!*->jbridge('net.sf.jasperre...') #1 {main} thrown in /var/www/tutorial/index.php on line 29

Fecha publicación: 2010-10-27-04:33:29

Autor: pablovargas

hola a todos, alguien lo ha logrado hacer funcionar, ya que a mi me indica un error con la funcion java_require, sin embargo el javaBridge funciona correctamente pero no logro incluir las librerias necesarias para que funcione el jasperReports, gracias por su ayuda

Fecha publicación: 2010-07-19-18:38:22

Autor: nosferatu9256

Yo 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.

Fecha publicación: 2010-07-19-16:51:56

Autor: nosferatu9256

Gracias por este aporte, saludos

Fecha publicación: 2009-12-23-18:45:17

Autor: LWS

que 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

Fecha publicación: 2009-08-11-07:33:22

Autor:

[Tito Peralta] Hola 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

Fecha publicación: 2009-08-07-09:46:24

Autor:

[LEOPOLDO GUZMAN] hola como estas... solo preguntarte el nombre o la version de las librerias que se requieren... saludos excelente tutorial....

Fecha publicación: 2009-07-21-01:38:12

Autor:

[Lopez] buenas 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!!!!