]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/PDF/Texto.php
Agrego nueva funcionalidad a MECON_PDF_Texto.
[mecon/meconlib.git] / lib / MECON / PDF / Texto.php
index b1086621c00fcf5cdb55f7c1c56ce9c22ec02a4f..2363af1d95e29e028ae99fe15f46d3d5ce1be6cf 100644 (file)
@@ -56,6 +56,50 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido {
             'height' => 8,
             'align'  => 'left'
             );
             '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.
    
     /**
      * Funcion que agrega el contenido del texto al PDF.
@@ -68,10 +112,12 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido {
     function toPDF(&$MARCO) {
         $alto = $MARCO->espacioDisponible;
         if ($alto <= 0 ) {
     function toPDF(&$MARCO) {
         $alto = $MARCO->espacioDisponible;
         if ($alto <= 0 ) {
-            $MARCO->newPage($MARCO->tamanio);               
+            $this->_newPage($MARCO);
             $alto = $MARCO->espacioDisponible;
         }
             $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]) {
 
         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) 
                 {
                 $alto -= $this->_estilos[$i]['height'];
                 if ($alto <= 0) 
                 {
-                    $MARCO->newPage($MARCO->tamanio);
+                    $this->_newPage($MARCO);
                     $alto = $MARCO->espacioDisponible;
                 }
 
                     $alto = $MARCO->espacioDisponible;
                 }
 
@@ -103,7 +149,7 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido {
            
 
                 $MARCO->addText($init, $alto + 2,
            
 
                 $MARCO->addText($init, $alto + 2,
-                        $t, $this->_estilos[$i], null, $MARCO->orientacion);
+                        $t, $this->_estilos[$i], null, $orientacion);
            
 
             }
            
 
             }
@@ -135,7 +181,12 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido {
             //sean parrafos.
             $c = split ("\n", $c); 
             foreach ($c as $tmp) {
             //sean parrafos.
             $c = split ("\n", $c); 
             foreach ($c as $tmp) {
-                $this->_parrafos[] = $tmp;
+                if ($tmp) {
+                    $this->_parrafos[] = $tmp;
+                }
+                else {
+                    $this->_parrafos[] = ' ';
+                }
             }
         }
     }
             }
         }
     }
@@ -199,7 +250,12 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido {
      * @return void
      */
     function updateEstilo($pos, $estilo) {
      * @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 +282,15 @@ class MECON_PDF_Texto extends MECON_PDF_Contenido {
     function setEstilo($pos, $estilo) {
         $this->_estilos[$pos] = $estilo;
     }
     function setEstilo($pos, $estilo) {
         $this->_estilos[$pos] = $estilo;
     }
+
+    /**
+     * Funcion que devuelve el numero de parrafos que hay cargados.
+     *
+     * @access public
+     * @return int
+     */
+    function cantParrafos() {
+        return count($this->_parrafos);
+    }
 }
 ?>
\ No newline at end of file
 }
 ?>
\ No newline at end of file