Foros del Web » Programando para Internet » PHP »

Problemas con FPDF

Estas en el tema de Problemas con FPDF en el foro de PHP en Foros del Web. Buenos dias la siguiente pregunta es con respecto a un reporteador en php ya muchos hemos oido hablar de FPDF pero por lo visto no ...
  #1 (permalink)  
Antiguo 10/03/2009, 10:17
 
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 2 meses
Puntos: 1
Problemas con FPDF

Buenos dias la siguiente pregunta es con respecto a un reporteador en php ya muchos hemos oido hablar de FPDF pero por lo visto no hay muchas preguntas del mismo y por consiguiente no tengo mucha ayuda bueno sin mas preambulo mi codigo es el siguiente:

<?php
require ('./fpdf.php');
require_once './clases/UTILS/ConexionPostgreSQL.php';
define('FPDF_FONTPATH','font/');
$objConexionPostgreSQL = new ConexionPostgreSQL();
$sql="Select * from tabla";

$Resultado = $objConexionPostgreSQL->Consultar($sql);

$j=-1;
while($row = pg_fetch_array($Resultado))
{
$j++;
$code = pg_result($Resultado, $j, 7);
$real_price = pg_result($Resultado, $j, 8);
$price_to_show = pg_result($Resultado, $j, 9);

$column_code = $column_code.$code."\n";
$column_real_price = $column_real_price.$real_price."\n";
$column_price = $column_price.$price_to_show."\n";
}



class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
$this->Image('./comunes/img/bandera_gob_bol.jpg',10,8,33);
//Arial bold 15
$this->SetFont('Arial','B',15);
//Movernos a la derecha
$this->Cell(80);
//Título
$this->Cell(30,10,'Title',1,0,'C');
//Salto de línea
$this->Ln(20);
}
//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',8);
//Número de página
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}

function FancyTable($header,$data)
{
//Colores, ancho de línea y fuente en negrita
$this->SetFillColor(255,0,0);
$this->SetTextColor(255);
$this->SetDrawColor(128,0,0);
$this->SetLineWidth(.3);
$this->SetFont('','B');
//Cabecera
$w=array(40,35,40,45);
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C',1);
$this->Ln();
//Restauración de colores y fuentes
$this->SetFillColor(224,235,255);
$this->SetTextColor(0);
$this->SetFont('');
//Datos
$fill=false;
foreach($data as $row)
{
$this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
$this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
$this->Cell($w[2],6,$row[2],'LR',0,'R',$fill);
$this->Cell($w[3],6,$row[3],'LR',0,'R',$fill);
$this->Ln();
$fill=!$fill;
}
$this->Cell(array_sum($w),0,'','T');
}
}

$pdf=new FPDF(); //INSTANCIANDO LA CLASE
$pdf->AliasNbPages(); //DEFINE UN ALIAS PARA EL TOTAL DE PAGINAS
$pdf->AddPage(); //AGREGA UNA PAGINA
$pdf->SetFont('Arial','B',6); //FUENTE DE LETRA
$pdf->SetXY(5,10); //COORDENADAS X y Y
$pdf->SetFillColor(236,235,236); //COLOR DE FONDO EN RGB

$header=array('País','Capital','Superficie (km2)','Pobl. (en miles)');
$pdf->FancyTable($header,$Resultado);

$pdf->Output();
?>

la pregunta es la siguiente de verdad que no se como manejar la informacion cuando me llega de base de datos de todas maneras estaba viendo un codigo por internet y consegui la manera de generar una tablita en color con algunos resultados y solo probando me dice que la llamada al metodo Fancytable no esta definido sin embargo me parece que si entonces nose que estoy haciendo mal si me pueden ayudar o poner un codigo mas entendible se los agradeceria mucho a los expertos en PHP gracias.......
  #2 (permalink)  
Antiguo 10/03/2009, 10:57
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problemas con FPDF

Hola JCamacho,

Cuando ponés codigo en un post hacelo envuelto en etiquetas PHP o HIGHLIGHT=PHP (estan los botones en el editor)

No ví todo el código pero lo que te puedo decir es que tendrías q crear una instancia de pdf y no de fpdf, la estas extendiendo y no la usas.

Saludos
  #3 (permalink)  
Antiguo 10/03/2009, 11:51
 
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problemas con FPDF

gracias lisandro disculpa para la prox pregunta lo tomare en cuenta lo de la etiqueta disculpa mi ignorancia pero yo al decirle que esta clase esta extendida de fpdf y al decirle en las primeras lineas "require ('./fpdf.php'); " no estoy creando la instancia de ambas y pues ahorita no entiendo muy bien como trabaja fpdf por lo que vi el tiene un archivo que me baje por internet donde tiene digamos que metodos ya establecidos la funcion FancyTable la estoy metiendo en la clase y despues la estoy llamando en mi codigo si me puedes explicar mejor a lo que te refieres puedo probarlo a ver si tienes la razon gracias y disculpa el abuso
  #4 (permalink)  
Antiguo 10/03/2009, 12:03
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problemas con FPDF

Bueno... no, cuando haces el "require ('./fpdf.php'); " no estas creando la instancia, solo estas insertando el archivo pero no creas ninguna instancia, el require esta bien porque incorpora el archivo que contiene a la classe fpdf.

La linea que esta mal es:
Código PHP:
$pdf=new FPDF(); //INSTANCIANDO LA CLASE 
deberia ser:
Código PHP:
$pdf=new PDF(); //INSTANCIANDO LA CLASE 
como pdf extiende de fpdf ahora tenés los meteodos de las dos clases disponibles y no te deberia salir el error que mencionabas.

Saludos.
  #5 (permalink)  
Antiguo 10/03/2009, 13:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problemas con FPDF

thanks gracias por la explicacion por ultimo queria hacerte otra pregunta lisandro que sera que estoy generando mi reporte y en algunos campos que son pequeños utilizo el metodo cell que tiene el archivo de fpdf pero para campos que son muy largos el tiene otro que se llama MultiCell el problema es que tengo otros campos seguidos a ese, y pues en vez de continuar la linea lo que hace es bajarme la informacion despues que culmina de meter en el pdf el campo multicell como controlo eso para que todo me lo coloque uniforme en una misma linea
  #6 (permalink)  
Antiguo 10/03/2009, 14:33
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problemas con FPDF

Eso es un problema muy puntual de la classe fpdf, yo nunca la he utilizado asi que no te puedo ayudar, deberias ir al sitio oficial (supongo q es http://www.fpdf.org/ ) y ver los tutoriales o preguntar en su foro, seguro es un problema muy común.

Saludos.
  #7 (permalink)  
Antiguo 10/03/2009, 17:03
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Problemas con FPDF

Buenas. Yo para imprimir a pdf usaba ezpdf. Busca en San Google ezpdf y entras en la página de R&OS. Busca en la página Downloads - zip file. Te lo descargas y lo descomprimes en la raiz de donde tengas el fichero a convertir a pdf. Puedes usar este script mio>

<?php
include ('class.ezpdf.php');
$pdf =& new Cezpdf();
$pdf->selectFont('./fonts/Helvetica.afm');

// Declaramos las variables
$host='localhost';
$usr='consulta';
$pass='consulta';
$db='red';

// Muestre error si no nos conectamos bien
if (!($id_conex = mysql_connect($host, $usr, $pass))){
echo "Error, fallo al intentar conectarse";
exit();
}
// Muestra error si no seleccionamos la base de datos correctamente
if (!(mysql_select_db($db, $id_conex))){
echo "Error, fallo al seleccionar la base de datos";
exit();
}
if (mysql_select_db($db, $id_conex)){
@mysql_query("SET NAMES 'utf-8'");
// mostar todos los datos de la tabla informacion_general
$sql="SELECT * FROM arp";
// Ejecutamos la consulta
$res = mysql_query($sql, $id_conex);
// Crea una tabla con el contenido de la tabla
// Recorrer toda la tabla con un array
echo "<tr class='cabeza'><td class='ip'>IP</td><td class='mask'>MASK</td><td class='mac'>MAC</td></tr>\n";
while ($datos=mysql_fetch_array($res)){
echo "<tr><td class='ip'>".$datos['ip'].
"</td><td class='mask'>".$datos['mascara'].
"</td><td class='mac'>".$datos['mac']."</td></tr>\n";
}
$pdf->ezText('Informacion General',50);
$pdf->ezTable($datos);
// Liberar el resultado de la consulta y cierra la conexión
mysql_free_result($res);
}
mysql_close($id_conex);
$pdf->ezStream();
?>
  #8 (permalink)  
Antiguo 11/03/2009, 14:11
 
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problemas con FPDF

gracias por tu ayuda aliza pero necesito resolverlo en FPDF ya tengo implementado varios reportes y pues imaginate si cada vez que sale un problema se tubiera que cambiar de lenguaje pues nunca nadie programaria nada otra cosita si alguien tambien ha dibujado lineas y cosas asi en esta libreria FPDF mucho agradeceria la respuesta thanks
  #9 (permalink)  
Antiguo 12/03/2009, 03:14
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Problemas con FPDF

Ok, pues sigue dando cabezazos que encontrarás la solución.
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 08:48.