Sei sulla pagina 1di 6

Crear pdf desde php haciendo una consulta a

MySQL http://puraslineas.com/2013/07/15/crear-
pdf-desde-php-haciendo-una-consulta-a-mysql/
Publicado por GianBros un Lunes, julio 15th 2013
15
jul

Mientras trabajamos con php en algn proyecto nos encomendarn generar un reporte sobre
los registros que se tienen en nuestra base de datos, suena sencillo y lo es, slo es cuestin
de saber buscarle, si llegaste a sta pgina entonces tu si sabes buscar
Primero utilizaremos las clases class.ezpdf.php y class.pdf.php, adems de la carpeta
fonts por si deseamos hacer uso de distintas fuentes. Incluimos nuestro archivo ezpdf de la
siguiente manera(se encuentra en raz del proyecto.
require_once('class.ezpdf.php');
$pdf = new Cezpdf('A4'); //seleccionamos tipo de hoja
$pdf->selectFont('fonts/Helvetica.afm'); //seleccionamos fuente a
utilizar
Haremos nuestra consulta (podremos exportarla para no revolver cdigo):
$bd_host = "localhost:3306"; //conexin localhost
$bd_usuario = "root"; //nombre usuario
$bd_password = "root"; //contrasea
$bd_base = "ost"; //nombre Base de Datos
//Hacemos la conexin y si no mostramos error
$con = mysql_connect($bd_host, $bd_usuario, $bd_password) or
die("Error con la conexin");
//Seleccionamos la Base de Datos de nuestra consulta anterior.
mysql_select_db($bd_base, $con) or die("Error al seleccionar db");
//escribimos nuestra consulta
$sql="SELECT id,nombre,paterno,materno FROM alumnos";
//realizamos nuestra consulta
$resSql=mysql_query($sql) or die("<br>Error
consulta</br>".mysql_error());
Ahora ya tenemos nuestros datos dentro de la variable
$resSql
habr recorrer los datos y convertirlos en un array, eso lo podemos hacer con un while y no
se nos olvide colocar los ttulos:
while($row=mysql_fetch_row($resSql)){
//la estructura ser 'Nombre campo'=> posicin del arreglo y la
informacin
$data[]=array('Id'=>$row[0],
'Nombre'=>$row[1],'Paterno'=>$row[2],'Materno'=>$row[3]);
}
$titles=array('Id'=>'Id',
'Nombre'=>'Nombre','Paterno'=>'Paterno','Materno'=>'Materno');
Y ya por ltimo generamos el pdf:
$pdf->ezTable($data);
$pdf->ezStream();
Y Taran! ya tenemos nuestro pdf, en tablas y con la informacin que nos importa de los
registros de nuestras bases de datos.
Les dejo los archivos para su ejemplo y claro debern de tener su base de Datos creada y
modificar los accesos.
generatePdfFromPhp
http://puraslineas.com/2014/06/25/la-primera-cita-de-uno-de-tus-amores-de-tu-vida/


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. 'desc_tec'=>'Desc. Tecnica'
15. );
16. $options = array(
17. 'showHeadings'=>1,
18. 'shadeCol'=>array(0.9,0.9,0.9),
19. 'xOrientation'=>'center',
20. 'width'=>500
21. );

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. $txttitle = "LISTADO DE PRODUCTOS "."\n\n\n";
23. $pdf->ezText($txttitle, 12);
24. $pdf->ezTable($data,$titles, '', $options);
25. $pdf->ezText("\n\n\n", 10);
26. $pdf->ezText("Fecha: ".date("d/m/Y")."\n", 10);
27. $pdf->ezText("Hora: ".date("H:i:s")."\n\n", 10);
28. $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 titulo 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 decima parte de lo que podemos llegar a realizar con ella.
Para ms informacin descarguen el readme de R&OS Pdf class.








http://www.scriptcase.net/es/scriptcas
e-ejemplos/
http://www.baluart.net/articulo/ejemplo-de-aplicacion-web-movil-con-jquery-
mobile
Tutoriales ms visitados:
Cmo dar de baja un dominio en 1and1.es
Cmo insertar un PDF en Joomla?
Cmo modificar archivos de una web mediante FTP
Cmo crear y usar un Favicon en Joomla
Configurando el archivo Robots.txt para Joomla
Consejos para instalar un index.html
Mtodo rpido de visualizacin de posiciones para mdulos en Joomla
Cmo cambiar el color y la fuente del tipo de letra en un artculo
Manual de Usuario - Frontpage SlideShow
Mensaje: ERROR LOADING FEED DATA
Cambiando las imgenes del mdulo JA Slideshow
Cmo insertar un vdeo en un artculo de tu Joomla?
Cmo Eliminar la edicin de noticias desde la web (Front-end)
Organizando el contenido en Joomla - Secciones - Categoras - Artculos

Potrebbero piacerti anche