X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/409294316ffb829e4fb995ce023b7ca279204771..ab08e58537352a82e34dab0684ae5997ece1899c:/lib/MECON/PDF/Texto.php diff --git a/lib/MECON/PDF/Texto.php b/lib/MECON/PDF/Texto.php index b108662..82100ea 100644 --- a/lib/MECON/PDF/Texto.php +++ b/lib/MECON/PDF/Texto.php @@ -56,11 +56,55 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { 'height' => 8, 'align' => 'left' ); + + /** + * Orientacion de las nuevas paginas + * @var string $orientacion + * @access protected + */ + var $_orientacion; + + /** + * Indica si el encabezado debe ir en la nuevas paginas. + * @var bool $encabezado + * @access protected; + */ + var $_encabezado; + + /** + * Class Constructor. + * + * @param string $orientacion Orientacion que tendran las nuevas paginas que + * esta clase genere. + * @param bool $encabezado Indica si las paginas nuevas que genere esta + * clase tendran el encabezado de MECON_PDF_Marco. + * + * @return void + * @access public + */ + function MECON_PDF_Texto($orientacion = null, $encabezado = true) { + $this->_orientacion = $orientacion; + $this->_encabezado = $encabezado; + } + + /** + * Funcion que se encarga de crear las nuevas paginas. + * + * @param &Object $MARCO MECON_PDF_Marco + * + * @return void + * @access protected + */ + function _newPage(&$MARCO) { + $tmp = ($this->_orientacion) ? $this->_orientacion : + $MARCO->getOrientation(); + $MARCO->newPage($MARCO->tamanio, $tmp, $this->_encabezado); + } /** * Funcion que agrega el contenido del texto al PDF. * - * @param &Object $MARCO MECON_PDF_Marco + * @param &Object $MARCO MECON_PDF_Marco. * * @return void * @access public @@ -68,10 +112,12 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { function toPDF(&$MARCO) { $alto = $MARCO->espacioDisponible; if ($alto <= 0 ) { - $MARCO->newPage($MARCO->tamanio); + $this->_newPage($MARCO); $alto = $MARCO->espacioDisponible; } - $ancho_pagina = $MARCO->getWidth($MARCO->orientacion); + + $ancho_pagina = $MARCO->getWidth($MARCO->refPage(),$MARCO->getOrientation()); + $orientacion = $MARCO->getOrientation(); for ($i=0; $i < count($this->_parrafos); $i++) { if (@!$this->_estilos[$i]) { @@ -85,7 +131,7 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { $alto -= $this->_estilos[$i]['height']; if ($alto <= 0) { - $MARCO->newPage($MARCO->tamanio); + $this->_newPage($MARCO); $alto = $MARCO->espacioDisponible; } @@ -100,12 +146,9 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { else { $init = 0; } - $MARCO->addText($init, $alto + 2, - $t, $this->_estilos[$i], null, $MARCO->orientacion); - - + $t, $this->_estilos[$i], null, $orientacion); } } $MARCO->espacioDisponible = $alto; @@ -135,7 +178,12 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { //sean parrafos. $c = split ("\n", $c); foreach ($c as $tmp) { - $this->_parrafos[] = $tmp; + if ($tmp) { + $this->_parrafos[] = $tmp; + } + else { + $this->_parrafos[] = ' '; + } } } } @@ -199,7 +247,12 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { * @return void */ function updateEstilo($pos, $estilo) { - $this->_estilos[$pos] = array_merge($this->_estilos[$pos], $estilo); + if (@$this->_estilos[$pos]) { + $this->_estilos[$pos] = array_merge($this->_estilos[$pos], $estilo); + } + else { + $this->setEstilo($pos, array_merge($this->_estilo_defecto, $estilo)); + } } /** @@ -226,5 +279,52 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido { function setEstilo($pos, $estilo) { $this->_estilos[$pos] = $estilo; } + + /** + * Devuelve el array de estilos o uno en particular. + * + * @param int $pos NĂºmero parrafo. + * + * @access public + * @return mixed + */ + function getEstilo($pos = null) { + if ($pos) { + return $this->_estilos[$pos]; + } + else { + return $this->_estilos; + } + } + + /* + * Devuelve el estilo por defecto. + * + * @access public + * @return mixed + */ + function getEstiloDefecto() { + return $this->_estilo_defecto; + } + + /** + * Funcion que devuelve el numero de parrafos que hay cargados. + * + * @access public + * @return int + */ + function cantParrafos() { + return count($this->_parrafos); + } + + /** + * Devuelve el array de parrafos + * + * @access public + * @return array + */ + function getParrafos() { + return $this->_parrafos; + } } ?> \ No newline at end of file