Foros del Web » Programando para Internet » PHP »

fpdf + ancho de columna

Estas en el tema de fpdf + ancho de columna en el foro de PHP en Foros del Web. Hola, Código PHP: function  FancyTable ( $header , $data )     {          //Colores, ancho de línea y fuente en negrita          $this -> SetFillColor ( 255 , 0 , 0 );          ...
  #1 (permalink)  
Antiguo 16/10/2009, 07:23
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
fpdf + ancho de columna

Hola,

Código PHP:
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,100,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,number_format($row[2]),'LR',0,'R',$fill);
            
$this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill);
            
$this->Ln();
            
$fill=!$fill;
        }
        
$this->Cell(array_sum($w),0,'','T');
    } 
encontré esta porción de código en los ejemplos de fpdf, mi duda es: es posible no tener que definir un ancho de columnas en las cabeceras?

En la Clase R&OS tienes la opción de decirle el tamaño máximo de la tabla en cuestión, y en caso que algun campo se alargue demasiado aplica ya el multilinia, y la tabla siempre queda encajada al tamaño predefinido!

es posible con fpdf ?
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 16/10/2009, 09:36
 
Fecha de Ingreso: mayo-2009
Ubicación: Madrid
Mensajes: 62
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: fpdf + ancho de columna

Es complicado el fpdf, pero aún más con las tablas. Pero hay una clase basada en ella, llamada TCPDF, que te recomiendo porque ofrece más funciones y resulta algo más sencilla.
Echa un vistazo a los ejemplos:
http://www.tecnick.com/public/code/c...tcpdf_examples
  #3 (permalink)  
Antiguo 16/10/2009, 09:48
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Respuesta: fpdf + ancho de columna

Gracias por la respuesta,

creo que seguiré con mi clase R&OS ya que, para el formato de reporte que necesito me va mucho mejor, sobretodo para no tener que predefinir tamaños de columna básicamente!
con lo siguiente ya defines el tamaño de tabla y los campos se adaptan a el
Código PHP:
Ver original
  1. $pdf->ezTable($data,$cols,'',array('fontSize'=>6, 'width'=>800,
  2. 'cols'=>array(
  3.                 'x1' => array('justification'=>'left')
  4.                 ,'x2'    => array('justification'=>'center')                
  5.                 ,'x3' => array('justification'=>'left')
  6.                 ,'x4'    => array('justification'=>'left')
  7.                 ,'x5'   => array('justification'=>'left')
  8.                 ,'x6'   => array('justification'=>'left'))
  9. ));

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #4 (permalink)  
Antiguo 16/10/2009, 09:54
 
Fecha de Ingreso: mayo-2009
Ubicación: Madrid
Mensajes: 62
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: fpdf + ancho de columna

Me lo apunto.
Quizá para reporting te interese DataVision, a lo Crystal Reports pero en open source
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 12:52.