function display() {
if ($this->getRowCount()) {
$this->_agregarContenido();
+
+ //Agrego los encabezados
+ $t = true;
+ foreach ($this->_pdf->getPages() as $page) {
+ $this->_pdf->_pagina_actual = $page;
+ $this->buildPage($t, $t);
+ $t = false;
+ }
+ //}}}
}
else {
$this->_pdf->newPage($this->_tamanio);
$this->_pdf->display();
}
+ /**
+ * Funcion que devuelve la posicion X en donde se debe escribir un texto
+ * segun su ubicacion en la celda
+ *
+ * @param int $row Indicador de la fila
+ * @param int $col Indicador de la columna
+ * @param string $texto Texto a escribir
+ * @param array $attr Atributos internos de la celda
+ * @param array $estilo Estilo del texto
+ *
+ * @return int
+ * @access protected
+ */
+ function _obtenerAlineacionTexto($row, $col, $texto, $attr, $estilo) {
+
+ $at = $this->getCellAttributes($row, $col);
+ if (@$at['align'] == 'center') {
+ $tam = $this->_pdf->strlen($texto, $estilo);
+ $init = $attr[$col] + ($attr[$col+1] - $attr[$col] - $tam) / 2;
+ }
+ elseif (@$at['align'] == 'right') {
+ $tam = $this->_pdf->strlen($texto, $estilo);
+ $init = $attr[$col+1] - $tam + 1;
+ }
+ else {
+ $init = $attr[$col];
+ }
+ return $init + 1;
+ }
+
/**
* Funcion que devuelve el estilo de la celda segun la configuracion.
*
*/
function _obtenerEstiloCelda($row, $col) {
$clase = $this->getCellAttributes($row, $col);
- switch ($clase['class']) {
- case 'mecon_html_tabla_comun_cabecera':
- $estilo = $this->_config['celda_cabecera'];
- break;
- case 'mecon_html_tabla_comun_titulo':
- $estilo = $this->_config['celda_titulo'];
- break;
- default :
- $estilo = $this->_config['celda_comun'];
- break;
+ if (@$clase['cabecera'] || @$clase['oscura']) {
+ $estilo = $this->_config['celda_cabecera'];
+ }
+ elseif (@$clase['titulo'] || @$clase['clara']) {
+ $estilo = $this->_config['celda_titulo'];
+ }
+ else {
+ $estilo = $this->_config['celda_comun'];
}
return $estilo;
}
/**
- * Funcion que agrega las filas y columnas a la pagina.
+ * Funcion que calcula el ancho de las columnas de la tabla.
*
- * @return void
+ * @return array
* @access protected
*/
- function _agregarContenido() {
- //Calculo el ancho de la columnas basandome en el ancho que tienen las
- //mismas en la primer fila {{{
+ function _obtenerAnchoColumnas() {
$ancho_pagina = abs($this->_config['Xf'] -
$this->_config['Xi']) ;
for ($i=0; $i<$this->getColCount(); $i++ ) {
$attr2[$i-1]);
}
$attr2[$i] = $this->_config['Xf'];
- ///}}}
-
- $this->_pdf->newPage($this->_tamanio);
-
+ return $attr2;
+ }
+
+ /**
+ * Funcion que agrega las filas y columnas a la pagina.
+ *
+ * @return void
+ * @access protected
+ */
+ function _agregarContenido() {
+ $this->_pdf->newPage($this->_tamanio);
$alto = $this->_getAvailableSpace($this->_pdf->numPage());
-
+ $attr2 = $this->_obtenerAnchoColumnas();
for ($i = 0; $i < $this->getRowCount(); $i++) {
$max = 0;
for ($j = 0; $j < $this->getColCount(); $j++) {
$estilo = $this->_obtenerEstiloCelda($i, $j);
$txt = $this->_pdf->wordWrap($this->getCellContents($i,$j),
$attr2[$j+1] - $attr2[$j], $estilo);
+ $txtt[$j] = $txt; //Esto es para no hacer el wordWrap siempre
$max = max($estilo['alto_linea'] * count($txt), $max);
+ $rep = array ();
+ $rep = $this->getCellAttributes($i, $j);
+ if (@$rep['cabecera'] || @$rep['titulo']) {
+ $repetir[$i][$j] = $txt;
+ $repetir[$i]['max'] = $max;
+ }
}
- $alto -= $max;
if ($alto < $this->_config['Yi']) {
$this->_pdf->newPage($this->_tamanio);
$alto = $this->_getAvailableSpace($this->_pdf->numPage());
+
+ foreach ($repetir as $ii => $value) {
+ $alto -= $repetir[$ii]['max'];
+ for ($jj = 0; $jj < $this->getColCount(); $jj++) {
+ $estilo = $this->_obtenerEstiloCelda($ii, $jj);
+ $this->_pdf->addRectangle($alto, $attr2[$jj],
+ $alto+$repetir[$ii]['max'],
+ $attr2[$jj+1], @$estilo['fill']);
+
+ $alto1 = $alto + $repetir[$ii]['max'];
+ foreach ($repetir[$ii][$jj] as $t) {
+ $alto1 -= $estilo['alto_linea'];
+
+ //Ubico el texto segun su alineacion
+ $init = $this->_obtenerAlineacionTexto($ii, $jj, $t, $attr2,
+ $estilo);
+
+ $this->_pdf->addText($init, $alto1 + 2,
+ $t, $estilo);
+ }
+ }
+ }
+
}
+
+ $alto -= $max;
for ($j = 0; $j < $this->getColCount(); $j++) {
+
$estilo = $this->_obtenerEstiloCelda($i, $j);
$this->_pdf->addRectangle($alto, $attr2[$j],
$alto+$max,
$attr2[$j+1], @$estilo['fill']);
- $txt = $this->_pdf->wordWrap($this->getCellContents($i,$j),
- $attr2[$j+1] - $attr2[$j], $estilo);
$alto1 = $alto + $max;
- foreach ($txt as $t) {
+ foreach ($txtt[$j] as $t) {
$alto1 -= $estilo['alto_linea'];
- $this->_pdf->addText($attr2[$j] + 1, $alto1 + 1,
+
+ //Ubico el texto segun su alineacion
+ $init = $this->_obtenerAlineacionTexto($i, $j, $t, $attr2,
+ $estilo);
+
+ $this->_pdf->addText($init, $alto1 + 2,
$t, $estilo);
}
}
}
- $t = true;
- foreach ($this->_pdf->getPages() as $page) {
- $this->_pdf->_pagina_actual = $page;
- $this->buildPage($t, $t);
- $t = false;
- }
}
-
}
?>
\ No newline at end of file
//require_once '../../lib/MECON/PDF/Marco.php';
require_once '../../lib/MECON/PDF/Tabla.php';
-$pdf =& new MECON_PDF_Tabla ("a4", "portrait");
+$pdf =& new MECON_PDF_Tabla ("a4", "landscape");
-//$pdf->seccion = 'Dir. General de Despacho y Mesa de Entradas y esto eso todo oooooooooooooooooooooooooooooo';
$pdf->seccion = 'Prueba de la libreria de PDF\'s';
$pdf->titulo = 'Alberto Giordano';
$pdf->subtitulo = 'Filosofo Estilista, guacho pulenta si los hay';
-//$pdf->paginador = false;
-//$pdf->fecha = '2/10/2003';
-
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'cabecera');
-$pdf->addRow(array ('1erColumna', '2daColumna para que la corete', '3erColumna'), 'titulo');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna para gonzalo que lo mira por tv desde su casa en ayacucho 1593. Aunque ahora que lo pienso me estoy equivocando', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
-$pdf->addRow(array ('1erColumna', '2daColumna', '3erColumna'), 'comun');
+$pdf->addRow(array ('1erCabecera', '2daCabecera para que la corete', '3erCabecera'), 'cabecera');
+$pdf->addRow(array ('1erColumna', '2daColumna para que la corete',
+ '3erColumna'), 'clara');
+for ($i=0; $i<220; $i++) {
+
+ if ($i == 50) {
+ $pdf->addRow(array ('1erColumna para gonzalo que lo mira por tv desde su casa en ayacucho 1593. Aunque ahora que lo pienso me estoy equivocando', '2daColumna 1erColumna para gonzalo que lo mira por tv desde su casa en ayacucho 1593. Aunque ahora que lo pienso me estoy equivocando FILA 50', '3erColumna1erColumna para gonzalo que lo mira por tv desde su casa en ayacucho 1593. Aunque ahora que lo pienso me estoy equivocando'), 'comun');
+ }
+ elseif ($i == 30) {
+ $pdf->addRow(array ('Esto es para probar', 'como repite las celdas',
+ 'MECON_PDF_Tabla'), 'titulo');
+ }
+ else {
+ $pdf->addRow(array ('Fila: '.$i.'Col: 1 ', 'Fila: '.$i.'Col: 2', 'Fila: '.$i.'Col: 3'), 'comun');
+ }
+
+}
$pdf->updateColAttributes(0,'width="50%"');
$pdf->updateColAttributes(1,'width="25%"');
$pdf->updateColAttributes(2,'width="35%"');
+$pdf->updateCellAttributes(2,0, 'align="left"');
+$pdf->updateCellAttributes(2,1, 'align="center"');
+$pdf->updateCellAttributes(2,2, 'align="right"');
$pdf->display();