Foros del Web » Programando para Internet » PHP »

Generar PDF con PHP

Estas en el tema de Generar PDF con PHP en el foro de PHP en Foros del Web. Buenas tengo una consulta que me extrae de la base de datos un listado de una tabla llamada personas con todos los campos que esta ...
  #1 (permalink)  
Antiguo 16/09/2008, 05:50
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Generar PDF con PHP

Buenas tengo una consulta que me extrae de la base de datos un listado de una tabla llamada personas con todos los campos que esta tiene apellidos, tlf, email etc...

Generé un archivo php que llama a la clase ezpdf y me genera un PDF con dicho listado, el problema es que yo quisiera generar el pdf con la informacion de cada usuario individualmente.

Mi idea era que en el litado

Pepe /Garcia Garcia /telefono patatin patatan /email patatin patatan/ Generar pdf

Al clickear en generar pdf me montara el pdf con la información de ese usuario y asi sucesivamente de forma automática con cada uno, sin tener que hacer 200 archivos php llamando a cada usuario.

Así es como se genera mi pdf
Código PHP:
<?php

// test the table functions

error_reporting(E_ALL);

include(
'class.ezpdf.php');

$pdf =& new Cezpdf();

$pdf->selectFont('./fonts/Helvetica');

//--------------------------------------------------
// you will have to change these to your settings
$host 'localhost';
$user 'root';
$password '';

$database 'bd_contactos';
$query 'select cod_nme,cod_aplds,txt_tlfno_trbllo from persoas';
//--------------------------------------------------

// open the connection to the db server
$link mysql_connect($host,$user,$password);
// change to the right database
mysql_select_db($database);
// initialize the array
$data = array();
// do the SQL query
$result mysql_query($query);
// step through the result set, populating the array, note that this could also have been written:
// while($data[] =  mysql_fetch_assoc($result)) {}
while($data[] =  mysql_fetch_array($resultMYSQL_ASSOC)) {}
// make the table
$pdf->ezTable($data);

// do the output, this is my standard testing output code, adding ?d=1
// to the url puts the pdf code to the screen in raw form, good for checking
// for parse errors before you actually try to generate the pdf file.
if (isset($d) && $d){
  
$pdfcode $pdf->output(1);
  
$pdfcode str_replace("\n","\n<br>",htmlspecialchars($pdfcode));
  echo 
'<html><body>';
  echo 
trim($pdfcode);
  echo 
'</body></html>';
} else {
  
$pdf->stream();
}

?>
A ver si alguien sabe o se le ocurre como hacer
  #2 (permalink)  
Antiguo 16/09/2008, 08:19
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Generar PDF con PHP

Hola Hamwe, cómo vas?

Creo que tienes una confusión en tu lógica, no hay necesidad de crear n archivos por n usuarios :D Simplemente haces el listado de usuarios, y a cada uno, le das un link que te lleve a un archivo php (el que generará tu pdf) y a dicho archivo le pasas por GET el id del usuario, y haces la consulta en tu archivo y con eso... ya puedes generar el pdf.

Asumo que tu clase te permite el envío de parámetros, al menos por GET, la verdad nunca he usasdo esa clase, siempre uso la clase fpdf.

Espero te sirva,

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 16/09/2008, 10:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 19
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: Generar PDF con PHP

Hola,
...un ejemplo de lo apuntado por Carxl:

index.php

Código PHP:
<?php 
//CONEXIÓN-----------------------------------------------------------
mysql_connect('localhost','root',''); 
mysql_select_db('bd_contactos'); 
//-------------------------------------------------------------------
$sql "select cod_nme,cod_aplds,txt_tlfno_trbllo from persoas"
$rs_contactos mysql_query($sql); 
echo 
"<table border='1'>";
while(
$contacto mysql_fetch_array($rs_contactos)){
    echo 
"<tr>
    <td>$contacto[0]</td><td>$contacto[1]</td>
    <td><a href='genPdf.php?idContacto=$contacto[0]'>Ficha Contacto</a></td></tr>"
;

echo 
"</table>";
?>
genPdf.php

Código PHP:
<?php
include ('class.ezpdf.php');
$pdf =& new Cezpdf();
$pdf->selectFont('./fonts/Helvetica.afm');
//CONEXIÓN-----------------------------------------------------------
mysql_connect('localhost','root',''); 
mysql_select_db('bd_contactos'); 
//-------------------------------------------------------------------
$sql "select * from persoas where cod_nme=".$_GET['idContacto'].""
$rs_contactos mysql_query($sql); 
while(
$contacto[] = mysql_fetch_assoc($rs_contactos)){}
$pdf->ezTable($contacto); 
$pdf->eZstream(); 
?>

--->Juan Bautista Cascallar Lorenzo<---
  #4 (permalink)  
Antiguo 17/09/2008, 04:51
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Respuesta: Generar PDF con PHP

Buenas muchas gracias a los 2 por la contestación me aclaró un poco mejor mis dudas, probé el ejemplo que expuso Juan_Bautista pero a la hora de generar el pdf me lo genera en blanco.

Voy a revisar a ver si veo algo que pueda fallar pero en principio con el codigo de Juan deberia funcionar, es un tanto extraño
  #5 (permalink)  
Antiguo 17/09/2008, 05:17
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Respuesta: Generar PDF con PHP

El problema está al hacer la consulta si le quito el where y la variable via Get hace el pdf pero claro muestra todos los registros de la tabla ya que no le estamos pasando variable ninguna.

Al intentar pasar la variable para que recoja la información de cada usuario es cuando le da algun tipo de problema y lo saca en blanco
  #6 (permalink)  
Antiguo 17/09/2008, 07:43
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Generar PDF con PHP

Hola Hamwe...

1. Verifica que efectivamente la variable que envías por GET está llegando a tu pdf.
2. Copia y pega tu consulta y ejecútala directamente en mysql. Si te produce un error en el resultado, corrígelo hasta que mysql la ejecute correctamente.

Saludos.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:33.