From 9811968174c1c6218a5595b93557f490b80261c7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Mon, 5 Sep 2005 15:28:19 +0000 Subject: [PATCH] Se agrega a la clase MLIB_PDF_Tabla y MLIB_PDF_Tabla_Estilo la posibilidad de setear filas (celdas) que se repitan en todas las paginas que se van creando. Esto libera al programador de utilizar siempre los tipos titulo y cabecera para lograr ese efecto. Se modifica el archivo de test para que se pueda ver como hacer esto. --- lib/MLIB/PDF/Tabla.php | 5 +++-- lib/MLIB/PDF/TablaEstilo.php | 9 ++++++++ test/Pdf/test.php | 42 ++++++++++++++++++++++++++++-------- 3 files changed, 45 insertions(+), 11 deletions(-) diff --git a/lib/MLIB/PDF/Tabla.php b/lib/MLIB/PDF/Tabla.php index 10f8385..3934abd 100644 --- a/lib/MLIB/PDF/Tabla.php +++ b/lib/MLIB/PDF/Tabla.php @@ -280,7 +280,8 @@ class MLIB_PDF_Tabla extends MLIB_PDF_Contenido { $rep = array (); $rep = $this->_tabla->getCellAttributes($i, $j); - if (@$rep['cabecera'] || @$rep['titulo']) { + if (@$rep['cabecera'] || @$rep['titulo'] || + @$this->_config[$rep['mlib_style']]['repeat'] ) { $repetir[$i][$j] = $txt; $repetir[$i]['max'] = $max; } @@ -364,7 +365,7 @@ class MLIB_PDF_Tabla extends MLIB_PDF_Contenido { //Ubico el texto segun su alineacion $init = $this->_obtenerAlineacionTexto($i, $j, $t, $attr2, $estilo); - + $this->_marco->addText($init, $alto1 + 2, $t, $estilo, null, $orientacion); } diff --git a/lib/MLIB/PDF/TablaEstilo.php b/lib/MLIB/PDF/TablaEstilo.php index 78c4e6a..f153a8e 100644 --- a/lib/MLIB/PDF/TablaEstilo.php +++ b/lib/MLIB/PDF/TablaEstilo.php @@ -60,6 +60,14 @@ class MLIB_PDF_Tabla_Estilo { */ var $fontHeight = 8; + /** + * Indica si debe repetirse en las diferentes pagians. + * + * @var bool $repeat + * @access public; + */ + var $repeat = false; + /** * Color de fondo de la celda. * @@ -129,6 +137,7 @@ class MLIB_PDF_Tabla_Estilo { 'alto_linea' => $this->rowHeight, 'font' => $this->font, 'height' => $this->fontHeight, + 'repeat' => $this->repeat, 'fillcolor' => $this->fillColor, 'fill' => array ( diff --git a/test/Pdf/test.php b/test/Pdf/test.php index 991f1d2..d4546c6 100755 --- a/test/Pdf/test.php +++ b/test/Pdf/test.php @@ -15,13 +15,13 @@ $TABLA->addRow(array ('1erCabecera', '2daCabecera para que la corete', '3erCabecera'), 'cabecera'); $TABLA->addRow(array ('1erColumna', '2daColumna para que la corete', '3erColumna'), 'clara'); -for ($i=0; $i<10; $i++) { +for ($i=0; $i<200; $i++) { if ($i == 50) { $TABLA->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) { $TABLA->addRow(array ('Esto es para probar', 'como repite las celdas', - 'MLIB_PDF_Tabla'), 'titulo'); + 'MLIB_PDF_Tabla'), 'mlib_style="martin_repeat"'); } else { $TABLA->addRow(array ('Fila: '.$i.'Col: 1 ', 'Fila: '.$i.'Col: 2', 'Fila: '.$i.'Col: 3'), 'comun'); @@ -36,7 +36,31 @@ $TABLA->updateCellAttributes(2,0, 'align="left"'); $TABLA->updateCellAttributes(2,1, 'align="center" mlib_style="martin_test2"'); $TABLA->updateCellAttributes(2,2, 'align="right" mlib_style="martin_test"'); -$PDF_TABLA =& new MLIB_PDF_Tabla ($TABLA, 'portrait'); +$PDF_TABLA =& new MLIB_PDF_Tabla ($TABLA, 'landscape', false); + +$PDF_TABLA_ESTILO =& new MLIB_PDF_Tabla_Estilo('martin_repeat'); +$PDF_TABLA_ESTILO->repeat = true; +$PDF_TABLA_ESTILO->rowHeight = 18; +$PDF_TABLA_ESTILO->font = 'Helvetica'; +$PDF_TABLA_ESTILO->fontHeight = 16; +$PDF_TABLA_ESTILO->fillColor = array ( + 'red' => '0', + 'blue' => '0', + 'green' => '0' + ); +$PDF_TABLA_ESTILO->fillMode = 'fill+stroke'; +$PDF_TABLA_ESTILO->fillModeFillColor = array ( + 'red' => '1', + 'blue' => '1', + 'green' => '1' + ); +$PDF_TABLA_ESTILO->fillModeStrokeColor = array ( + 'red' => '1', + 'blue' => '0', + 'green' => '0' + ); + +$PDF_TABLA->setStyle($PDF_TABLA_ESTILO); $PDF_TABLA_ESTILO =& new MLIB_PDF_Tabla_Estilo('martin_test'); $PDF_TABLA_ESTILO->rowHeight = 18; @@ -86,7 +110,7 @@ $PDF_TABLA->setStyle($PDF_TABLA_ESTILO); //{{{ -$PDF_TEXTO =& new MLIB_PDF_Texto ('portrait'); +$PDF_TEXTO =& new MLIB_PDF_Texto ('landscape', false); $PDF_TEXTO->addContent(array ( "Texto a la izquierda", @@ -101,7 +125,7 @@ $PDF_TEXTO->setEstilo(2, array ('font' => 'Helvetica-Bold', 'height' => 8, $PDF_TEXTO->addContent("PARRAFO 1 -> Si se omite tamano, se suprime todo desde el desplazamiento hasta el final de la matriz. Si se especifica el tamano y es positivo, se suprimirán tantos elementos como se especifica. Si fuera negativo, el final de la porción eliminada estará a tantos elementos del final de la matriz. Truco: para eliminar todo desde el desplazamiento hasta el final de la matriz cuando también se especifica sustitucion,utilice como tamano.\nPARRAFO 2 ->Si se especifia la matriz de sustitucion, entonces los elementos suprimidos son reemplazados con los elementos de dicha matriz. Si los valores de desplazamiento y tamano son tales que nada es borrado, los elementos de la matriz sustitucion se insertarán en la posición indicada por el desplazamiento. Truco: si sólo se va a sustituir algo por un elemento nada más, no hace falta poner alrededor del mismo, salvo que dicho elemento sea una matriz en sí mismo."); -$PDF_TEXTO2 =& new MLIB_PDF_Texto ('portrait'); +$PDF_TEXTO2 =& new MLIB_PDF_Texto ('landscape', false); $PDF_TEXTO2->addContent("El jefe de Gobierno porteño, Aníbal Ibarra, advirtió que su gestión no otorgará beneficios a los piqueteros que durante el fin de semana último ocuparon un predio en el barrio de Palermo.\n Si uno privilegia la situación de irregularidad, es que ponemos patas para arriba a toda la sociedad, enfatizó Ibarra, quien advirtió que no avalará situaciones de fuerza por sobre lo que hacen cientos de miles de ciudadanos que pagan sus créditos y que se anotan (en planes) para viviendas, esperando a veces durante muchos años.\n En declaraciones periodísticas, Ibarra remarcó que no se puede obtener una vivienda ni autorización para construir viviendas sobre la presión y mucho menos sobre una situación de ilegalidad."); $PDF_TEXTO2->setEstilo(1, array ('font' => 'Helvetica-Bold', 'height' => 8, 'align' => 'center')); @@ -111,13 +135,13 @@ $PDF_TEXTO2->setEstilo(0, array ('font' => 'Helvetica-Bold', 'height' => 8, //print '
MARTIN FIN 
'; //}}} -$PDF_MARCO =& new MLIB_PDF_Marco ('legal', 'portrait'); +$PDF_MARCO =& new MLIB_PDF_Marco ('legal', 'landscape'); $PDF_MARCO->seccion = 'Prueba de la libreria de PDF\'s'; $PDF_MARCO->titulo = 'Alberto Giordano'; $PDF_MARCO->subtitulo = 'Filosofo Estilista, guacho pulenta si los hay'; -$PDF_MARCO->logo = '/var/www/sistemas/mlib/www/images/pdf_logo_portrait.jpg'; +$PDF_MARCO->logo = '/var/www/sistemas/mlib/www/images/pdf_logo_landscape.jpg'; -//$PDF_MARCO->addContent(new MLIB_PDF_Tabla ($TABLA, 'portrait'), false); +//$PDF_MARCO->addContent(new MLIB_PDF_Tabla ($TABLA, 'landscape'), false); $PDF_MARCO->addContent($PDF_TABLA, false); $PDF_MARCO->addContent($PDF_TEXTO, true); @@ -127,7 +151,7 @@ $PDF_MARCO->addContent($PDF_TEXTO, true); //$PDF_MARCO->addContent($PDF_TEXTO2, true); //$PDF_MARCO->addContent($PDF_TEXTO2, true); //$PDF_MARCO->addContent(new MLIB_PDF_Tabla ($TABLA), true); -//$PDF_MARCO->addContent(new MLIB_PDF_Tabla ($TABLA, 'portrait'), false); +//$PDF_MARCO->addContent(new MLIB_PDF_Tabla ($TABLA, 'landscape'), false); //}}} //$TABLA->display(); -- 2.43.0