Foros del Web » Programando para Internet » PHP »

Cómo manipular la clase FPDF

Estas en el tema de Cómo manipular la clase FPDF en el foro de PHP en Foros del Web. Buenas. Necesito crear una serie de reportes con datos de Mysql y presentarlos en una tabla. tengo el siguiente código para crear una tabla: Código ...
  #1 (permalink)  
Antiguo 15/07/2011, 14:55
 
Fecha de Ingreso: julio-2010
Mensajes: 75
Antigüedad: 14 años, 5 meses
Puntos: 2
Cómo manipular la clase FPDF

Buenas. Necesito crear una serie de reportes con datos de Mysql y presentarlos en una tabla. tengo el siguiente código para crear una tabla:
Código PHP:
            $estado=$_POST['estado'];
                
ob_end_clean(); 
                include 
"conexion.php";//nos conectamos con la base de datos 
                        
                
if(($estado!=""))
                {    
            
                    require(
'fpdf.php'); //clase para reporte pdf
                        
                    
$Resmysql_query("SELECT facilitador.cedula, facilitador.nombre, facilitador.apellido, facilitador.correo, tlf_facilitador.movil, tlf_facilitador.fijo FROM facilitador, tlf_facilitador WHERE estado = '$estado' AND facilitador.cedula=tlf_facilitador.cedula",$conexion)or die(mysql_error());
                                
//consultas de mysql
                            
            //esta es la consulta que viene desde la base de datos
            



                
            
$pdf=new FPDF(); //se crea un objeto de la clase pdf


            
$pdf->AddPage();//se añade una pagin

            
$pdf->SetFont('Arial','B',6);//se selecciona la fuente
            
$pdf->SetMargins(25,30);//se manejan los margenes de la hoja
             
            
$pdf->Ln(3); //salto de linea en el reporte
             
$pdf-> Cell(0,15,"LISTA DE FACILITADORES CUYO ESTADO ES: " .$estado ,0);//titulo
             
$pdf->Ln(3);
             
$pdf-> Cell(23,15,"PARA LA FECHA: " .date('d/m/y'),0);
              
$pdf->Ln(3);
             
$pdf-> Cell(0,15,"HORA: ".date('h:i A',time()-16200),10);
             
            
// $pdf-> Cell(0,0,date('d/m/y'),0);//fecha del reporte
            
             
$pdf->Ln(10);
             
            
            
            
//Calcular el Length maximo de nombre
            
            
$pdf->SetFillColor(0,0,250);//color de las tablas y fondo
            
$pdf->SetTextColor(0);
            
            
$pdf->SetDrawColor(0,0,250);
            
$pdf->SetLineWidth(.3);
            
$pdf->SetFont('','B');
            
            
$esta=false;//variable para controlar si la consulta no devuelve resultados
            
            //if(($data1['numero']=="")&&($data2['numero']==""))
            
$header=array('CEDULA','NOMBRES','APELLIDOS','CORREO','MOVIL','FIJO');//encabezado de la tabla
             
            
                
                           
foreach($header as $col1)//se recorre el arreglo del encabezado para imprimir esta parte de la tabla en el reporte
                           
{
                             
                                if (
$col1=="CEDULA")
                                
$pdf-> Cell(25,5,$col1,1); //si se trata de la columna del tema se le agrega 60 como tamaño
                                
else
                                {
                                      
$pdf->Cell(25,5,$col1,1);//del resto es 25
                                
}
                                
                           
                           }
                           
                               
                             
                            
              
                           
$pdf->Ln(5);
                           
             
$pdf->SetFillColor(224,235,255);//colores de nuevo
                
$pdf->SetTextColor(0);
                
$pdf->SetFont('');
            
                
                
                
                    While(
$row=mysql_fetch_row($Res))//se recorre el resultado de la consulta por filas y cada una de ellas por columnas
                
{
                        if(
$row[0]!=""//si se encontro algo entonces es que hay resultado
                        
{
                            
$esta=true;
                               foreach(
$row as $col)//se recorre cada campo de una tupla para imprimirlo en su lugar respectivo
                               
{
                               
                                          if (
$row[2]==$col)//si se trata del tema
                                        
$pdf-> Cell(25,6,$col,1); //se imprime pero con tamaño de 60
                                        
else
                                        {
                                        
                                            
$pdf-> Cell(25,6,$col,1);//sino se imprime pero con tamaño de 25 normal
                                            
                                        
}
                                }
                          
                    
                         
$pdf->Ln();
                                       
                         }
                            
                 }
                
            } 

Mi problema es que de la manera como crea la tabla no tengo dominio sobre la alineaciòn de los campos. Por ejemplo, tengo un campo Teléfono que lo quiero pegado a la izquierda, otros centrados y otros pegados de la derecha, y por lo menos el encabezado de la tabla lo quiero poner en un color, es decir, donde van los nombres de los campos, y algunas celdas cambiarles el color.
Agradezco su ayuda

Última edición por Jibril; 15/07/2011 a las 15:02
  #2 (permalink)  
Antiguo 15/07/2011, 22:01
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Cómo manipular la clase FPDF

Holas,

Para sobrescribir la clase fpdf, simplemente crear otra clase y haces una herencia de la clase fpdf y listo, alli nuevamente puedes modificar la clase.

Para para los detalles que mencionas no creo que sea necesario, ya que estan en los mismos tituriales y manuales y en las Faq de la pagina:

http://www.fpdf.org/

Saludos
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 16/07/2011, 17:35
Avatar de jmacc  
Fecha de Ingreso: marzo-2007
Ubicación: Mexico
Mensajes: 94
Antigüedad: 17 años, 9 meses
Puntos: 6
Respuesta: Cómo manipular la clase FPDF

Ejemplo de Codigo:
Código PHP:
Ver original
  1. class PDF_unique extends TablePDF
  2. {
  3. function PrintEncabezadoEditable($label, $lin =1, $size=189,$aling='C', $ancho=3)
  4. {
  5.     $rows = $lin * $ancho;
  6.     //$this->SetFont('TheSansSemiBold-Plain','',7);
  7.     $this->SetFillColor(0,0,0);
  8.     $this->SetTextColor(999,999,999);
  9.     $this->Cell($size,$rows,$label,1,0,$aling,1,0);
  10. }
  11. }

Etiquetas: clase, fpdf, manipular, mysql, tabla, variables
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 18:51.