Вы находитесь на странице: 1из 2

Generar reportes en PDF con PHP y MySql

PHP tiene funciones especificar para trabajar con pdf, pero son muy difciles de usar. Luego de googlear un poco encontr R&OS Pdf class, una clase para PHP que tiene una serie de funciones muy sencillas de usar y muy potentes. La instalacin es muy fcil, solo hay que bajar los archivos desde la web de R&OS y descomprimirlos en nuestro web server. En esta clase vienen 2 archivos: class.ezpdf.php y class.pdf.php los cuales contienen todas las propiedades y mtodos necesarios para crear documentos PDF. Tambin vamos a encontrar una carpeta fonts, en la cual vienen varias fuentes para utilizar con esta clase. El primer paso para comenzar a generar un archivo pdf es incluir la clase con esta lnea:
1. include ('class.ezpdf.php');

Luego debemos crear una instancia de la clase Cezpdf, con la cual vamos a manejar la creacin del archivo pdf. Para esto creamos un archivo llamado mipdf.php donde vamos a escribir el siguiente cdigo php:
2. $pdf =& new Cezpdf('a4'); 3. $pdf->selectFont('../fonts/courier.afm'); 4. $pdf->ezSetCmMargins(1,1,1.5,1.5);

En la lnea 2 seleccionamos el tamao de hoja a utilizar, en la 3 seleccionamos el tipo de fuente que vamos a usar en el archivo pdf y en la lnea 4 definimos los mrgenes de las pginas generadas en el pdf. OBTENER LOS DATOS DE MYSQL PARA GENERAR UNA TABLA Ahora vamos a obtener los datos a mostrar desde una base de datos. En este ejemplo estoy utilizando MySql para obtener los datos de los productos:
5. $conexion = mysql_connect("localhost", "usuario", "clave"); 6. mysql_select_db("demo", $conexion); 7. $result=mysql_query("SELECT idProducto,descrip,desc_tec FROM Productos",$conexion)or die(mysql_error());

CREANDO EL TITULO, ARRAY DE DATOS Y OPCIONES: Una vez que tenemos los datos de la base de datos tenemos que generar el ttulo, el arreglo de datos y las opciones de la tabla a generar. Para esto vamos a usar 3 matrices: una para los ttulos de los campos, otra para los datos y otra para las opciones de la tabla:
8. while($datatmp = mysql_fetch_assoc($result)) { 9. $data[] = $datatmp; 10. } 11. $titles = array( 12. 'idProducto'=>'ID', 13. 'descrip'=>'Descripcion',

14. 15. 16. 17. 18. 19. 20. 21.

'desc_tec'=>'Desc. Tecnica' ); $options = array( 'showHeadings'=>1, 'shadeCol'=>array(0.9,0.9,0.9), 'xOrientation'=>'center', 'width'=>500 );

La matriz data no requiere mucha explicacin, solamente acumulamos los datos uno por uno en esa matriz. En la matriz titles asignamos los nombres de cada columna de datos. En cuanto a la matriz options solo voy a explicar las opciones ms comunes, ya que esta clase es muy completa y tiene varias opciones ms: showHeadings=> permite mostrar los nombres de las columnas (encabezados) 1 muestra, 0 oculta. shadeCol=> color de celdas, se ingresa el color en formato RGB. xOrientation=> orientacin del texto dentro de las celdas de la tabla. width=> asigna el ancho de la tabla. IMPRIMIR LOS RESULTADOS: Una vez que tenemos los nombres de las columnas, los datos y la configuracin de la tabla debemos generar el pdf con toda la informacin que necesitamos. Vamos a incluir un titulo para el archivo y datos de fecha y hora para acompaar a la tabla:
22. 23. 24. 25. 26. 27. 28. $txttitle = "LISTADO DE PRODUCTOS "."\n\n\n"; $pdf->ezText($txttitle, 12); $pdf->ezTable($data,$titles, '', $options); $pdf->ezText("\n\n\n", 10); $pdf->ezText("Fecha: ".date("d/m/Y")."\n", 10); $pdf->ezText("Hora: ".date("H:i:s")."\n\n", 10); $pdf->ezStream();

La funcin exTable es la que va a generar la tabla de datos. Lleva como parmetros: Datos,Encabezados,Titulo y Opciones (en el ejemplo no le indico un ttulo a la tabla). La funcin exText permite ingresar un texto al archivo pdf con su respectivo tamao de letra. Por ltimo la funcin ezStream es la que genera el archivo pdf y lo muestra en el navegador. Bueno, eso es todo, la verdad que R&OS Pdf class es muy completa y potente y solo les mostr una dcima parte de lo que podemos llegar a realizar con ella.

Вам также может понравиться