Buenas de Nuevo,
Me he hecho esta funcioncita q de momento me saka del apuro, La pongo aqui por si a alguien le hace falta algo parecido, q la modifique a su gusto :P.
Habria que llamar a la funcion por cada fila d la tabla aunq podreis haceros una funcion para enviarle la tabla entera y yasta ;)
Igual es un Poco Caotica xD
A la funcion se le pasa un array de datos compuesto por otro array cuyos campos son texto y size.
Por Ejemplo
Código PHP:
$datos[0]['texto'] = 'Celda 1 con tamaño 90' ;
$datos[0]['size'] = 90 ;
$datos[1]['texto'] = 'Celda 2 con tamaño 40' ;
$datos[1]['size'] = 40 ;
Y se le pasa un True | False en funcion si le queremos poner borde a las celdas.
D todas formas insisto, esto me vale a mi, pero a quien lo necesite mas modificado q se lo cambie :P
Código PHP:
function dibujar_fila($array_datos,$poner_borde)
{
$posX = $this->GetX() ;
$posY = $this->GetY() ;
$posicionXactual = (integer)$posX ;
$numeroLineas = 0 ;
$sumSize = 0 ;
foreach($array_datos as $dato)
{
$sumSize += $dato['size'] ;
$text_size = (integer)$this->GetStringWidth($dato['texto'])+1.5 ;
$cell_size = (integer)$dato['size'] ;
$numLineas = number_format( ($text_size/$cell_size) , 2) ;
$tmp = explode('.',$numLineas) ;
if ($tmp[1] > 0)
$tmp[0]++ ;
if ($tmp[0] > $numeroLineas)
$numeroLineas = $tmp[0];
}
foreach($array_datos as $dato)
{
$this->SetY($posY) ;
$this->SetX($posicionXactual) ;
if ($poner_borde == true)
$this->MultiCell($dato['size'],6,$dato['texto'],'LR',1,'L') ;
else
$this->MultiCell($dato['size'],6,$dato['texto'],0,1,'L') ;
$posicionXactual = $posicionXactual + $dato['size'] ;
}
if ($numeroLineas > 10)
$numeroLineas++ ;
$a = 0 ;
foreach($array_datos as $dato)
{
$sizes[$a] = $dato['size'] ;
$a++ ;
}
if($poner_borde == true)
{
$this->SetY($posY) ;
if ($numeroLineas == 1)
{
$this->Cell($sumSize,6,'',1,1) ;
}
else
{
if ($numeroLineas == 2)
{
$this->Cell($sumSize,6,'','T',1) ;
$this->Cell($sumSize,6,'','B',1) ;
}
else
{
$this->Cell($sumSize,6,'','T',1) ;
for($i=2 ; $i < $numeroLineas+1 ; $i++)
{
for ($a=0 ; $a < count($sizes)-1; $a++)
$this->Cell($sizes[$a],6,'','LR',0) ;
$this->Cell($sizes[count($sizes)-1],6,'','LR',1) ;
}
for ($a=0 ; $a < count($sizes)-1; $a++)
$this->Cell($sizes[$a],6,'','LR',0) ;
$this->Cell($sizes[count($sizes)-1],6,'','LR',1) ;
}
}
}
else
{
$this->SetY($posY) ;
for($i=0 ; $i < $numeroLineas ; $i++)
$this->Cell(0,6,'',0,1) ;
}
return $numeroLineas ;
}