Gracias a la clase CEZPDF realizada por Wayne Munro podemos escribir facilmente documentos PDF desde nuestra aplicación PHP.
En este ejemplo, voy a sacar en PDF la salida de ejecutar una consulta SQL en formato de tabla. Para ello voy a utilizar la clase DB de PEAR que nos proporciona metodos de acceso rapido a bases de datos.
// Incluimos la clase para escribir los PDF
include('class.ezpdf.php');
// Incluimos la clase DB de PEAR
require "DB.php";
// Instanciamos un nuevo objeto de tipo pdf
$pdf =& new Cezpdf();
// Seleccionamos la fuente a utilizar
$pdf->selectFont('./fonts/Helvetica.afm');
// Consulta SQL a ejecutar
$q = "SELECT nombre, apellidos, email FROM usuarios";
// Ejecutamos la consulta
$res =& $db->query($q);
// Array donde meteremos los datos de la consulta
$data = array();
// Añadimos una imagen que usaremos como cabecera del PDF
// addJpegFromFile(imagenJPEG, posicionX, posicionY, anchura, [altura])
$pdf->addJpegFromFile("images/pdf.jpg",200,790,200);
// Fijamos el inicio de la tabla en la posicionY dada
$pdf->ezSetY(780);
// Recorremos la consulta
while ($res->fetchInto($data[])) {
// No lo usamos, pero sino, si no hacemos el bucle,
// solo nos devolveria una fila
$content .= $data;
}
// Pintamos y damos formato a la tabla
$pdf->ezTable($data,array('nombre' => '<u><b>Nombre del usuario</b></u>',
'apellidos' => '<u><b>Apellidos</b></u>',
'email' => '<u><b>Direccion de correo</b></u>'
),'',array('showHeadings'=>1,'shaded'=>0,'showLines'=>1, 'lineCol' => '()', 'titleFontSize' => 16, 'fontSize' => 8,'colGap' => 6));
// Generamos el PDF
$pdf->ezStream();
Y voilá, ya tenemos un listado de usuarios en PDF facilmente gracias a CEZPDF.
Comentar que no hacemos nada con el while que recorre la consulta pero lo necesitamos para meter los datos en el array ($data) ya que si metiesemos la creacion de la tabla en el bucle solo nos devolveria una fila (se machaca a cada iteracion), por lo que hacemos ese "truco" y conseguimos el efecto deseado.
A disfrutarlo.
Hola estaba viendo la codificacion que hisiste para desplegar en pdf, porque me encuentro realizando lo mismo nadamas que tengo un problema para desplegar en una forma determinada, no sabes como le puedo hacer para que me salga algo asi:
Nombre: $nombre // Esta variable la carga de una BD
Apellido: $apellido //Esta tambien
quiero que Despliegue asi :
Nombre: Rodrigo
Apellido:Ladron de Guevara
en lugar de una tabla asi:
Nombre Apellido
Rodrigo Ladron de Guevara
Gracias, espero me puedas sacar de la duda, nos vemos
Rodrigo Ladron de Guevara | 16-11-2005 17:02:23
Saludos!
quisiera saber como puedo modificar el color del encabezado de una tabla, no del texto. Me refiero al fondo. Por su atencion gracias
magnum | 11-02-2006 00:35:01
Quisiera ver si me pueden ayudar. Mi problema es q estoy utilizando Cexpdf para elaborar unos documentos q me da mi sistema, lo q ocurre es q quiero el texto justificado y no lo hace. Ya intente con el ezText y no funciona.Haber si alguien me puede decir un truco para justificar grandes cantidades de texto. Gracias !!!
yaen sanders | 04-04-2007 00:48:37
yo | 30-05-2008 23:38:54