for ($row = 0; $row<$this->_tabla->getRowCount(); $row++) {
for ($i=0; $i<$this->_tabla->getColCount(); $i++ ) {
$tmp = $this->_tabla->getCellAttributes($row,$i);
- if (is_null(@$tmp['width'])) {
- $attr[$i] = 0;
- }
- else {
+ if(@intval($tmp['width']) != 0)
$attr[$i] = intval($tmp['width']);
- }
+ if(@count($attr) == $this->_tabla->getColCount())
+ break 2;
}
}
+
+ if (!isset($attr))
+ die ('Todas las columnas tienen que tener un ancho asignado');
+
$tmp = array_sum($attr);
+
$attr2[0] = 0;
for ($i=1; $i<count($attr); $i++) {
$attr2[$i] = intval(($ancho_pagina * $attr[$i-1] / $tmp) +
$orientacion = $this->_marco->getOrientation();
$alto = $this->_marco->espacioDisponible;
}
-
$attr2 = $this->_obtenerAnchoColumnas();
-
for ($i = 0; $i < $this->_tabla->getRowCount(); $i++) {
$max = 0;
for ($j = 0; $j < $this->_tabla->getColCount(); $j++) {
//Actuo por el colspan
if (@$estilo['colspan']) {
- if ($estilo['colspan'] >= $this->_tabla->getColCount()) {
+ if ($estilo['colspan'] > $this->_tabla->getColCount()) {
$estilo['colspan'] =
- $this->_tabla->getColCount() - $j - 1;
+ $this->_tabla->getColCount() - $j;
}
$ancho_columna = $attr2[$j+$estilo['colspan']] -
$attr2[$j];
else {
$ancho_columna = $attr2[$j+1] - $attr2[$j];
}
-
$txt = $this->_marco->wordWrap(
@$this->_tabla->getCellContents($i,$j), $ancho_columna,
$estilo);
$repetir[$i]['max'] = $max;
}
}
-
if ($alto <= 0)
{
$this->_newPage();
//Actuo por el colspan
if (@$estilo['colspan']) {
- if ($estilo['colspan'] >= $this->_tabla->getColCount()) {
+ if ($estilo['colspan'] > $this->_tabla->getColCount()) {
$estilo['colspan'] =
- $this->_tabla->getColCount() - $j - 1;
+ $this->_tabla->getColCount() - $jj;
}
$der = $attr2[$jj+$estilo['colspan']];
$izq = $attr2[$jj];
$this->_marco->addRectangle($izq, $alto, $der,
$alto+$repetir[$ii]['max'], @$estilo['fill'],
null, $orientacion);
-
$alto1 = $alto + $repetir[$ii]['max'];
foreach ($repetir[$ii][$jj] as $t) {
$alto1 -= $estilo['alto_linea'];
}
if (@$estilo['colspan']) {
- $jj++;
+ $jj += $estilo['colspan'] -1;
}
}
for ($j = 0; $j < $this->_tabla->getColCount(); $j++) {
$estilo = $this->_obtenerEstiloCelda($i, $j);
-
+
//Actuo por el colspan
if (@$estilo['colspan']) {
- if ($estilo['colspan'] >= $this->_tabla->getColCount()) {
- $estilo['colspan'] = $this->_tabla->getColCount() - 1;
+ if ($estilo['colspan'] > $this->_tabla->getColCount()) {
+ $estilo['colspan'] = $this->_tabla->getColCount() - 1;
}
$der = $attr2[$j+$estilo['colspan']];
$izq = $attr2[$j];
}
}
if (@$estilo['colspan']) {
- $j++;
+ $j += $estilo['colspan']-1;
}
}