]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/PDF.php
Se arregla un error en un sql de Mecon_Dependencia.
[mecon/meconlib.git] / lib / MECON / PDF.php
index fc4011e623afa1540304025cbf0382e611e0cf63..a469ed0c985a2c145daf4d0de3fee305d1b1ea03 100644 (file)
@@ -57,7 +57,7 @@ class MECON_PDF {
     /**
      * Libreria externa.
      * @var    int $pdf
-     * @access private
+     * @access protected
      */
     var $_pdf;
 
@@ -75,27 +75,38 @@ class MECON_PDF {
      */
     var $_paginas = array();
 
+    /**
+     * Nombre del archivo resultado para el display.
+     * @var sting $nombre
+     * @access private
+     */
+    var $_nombre;   
+
     /**
      * Class constructor.
      *
      * @param string $tam Tipo de hoja
-     * @param string $ori Orientacion de las hojaz (portrait o landscape).
+     * @param string $ori Orientacion de las hojas (portrait o landscape).
+     * @param string $nombre Nombre del archivo PDF.
      *
      * @return void
      * @access public
      */
-    function MECON_PDF($tam = "a4", $ori = "portrait")
+    function MECON_PDF($tam = "a4", $ori = "portrait", $nombre = "Doc.pdf")
     {
+        setlocale (LC_ALL, 'en_US');
         $this->orientacion = $ori;
         $this->_pdf = new pdffile;
         $this->_config = include 'MECON/PDF/medidas.php';
         $this->_config = $this->_config[$tam];
+        $this->_nombre = $nombre;
     }
 
     /**
      * Permite agregar nuevas paginas al pdf que se esta armando.
      *
      * @param  string $pagina Tipo de pagina que se va a utilizar.
+     * @param  string $orientacion Orientacion de la pagina en particular.
      *
      * @return void
      * @access public
@@ -105,23 +116,27 @@ class MECON_PDF {
         $this->_pagina_actual = $this->_pdf->new_page($pagina);
         $this->_paginas[] = $this->_pagina_actual;
         if(!is_null($orientacion) && $orientacion != $this->orientacion)
-          $this->_orientacion_distinta[$this->numPage()] = $orientacion;  
+            $this->_orientacion_distinta[$this->numPage()] = $orientacion;  
     }
 
     /**
-     *  Funcion que retorna la orientacion de la pagina indicada
-     *   Si no se indica, la orientacion de la ultima pagina
-     *  @access public
-     *  @return int
+     * Funcion que retorna la orientacion de la pagina indicada.
+     * Si no se indica, toma la orientacion de la ultima pagina.
+     *
+     * @param int $pagina Numero de la pagina.
+     *
+     * @access public
+     * @return int
      */
     function getOrientation($pagina = null)
     {
-      if(is_null($pagina))
-        $pagina = $this->numPage();
-      if(isset($this->_orientacion_distinta[$pagina]))
-        $o = $this->_orientacion_distinta[$pagina];
-      else $o = $this->orientacion;
-      return $o;
+        if(is_null($pagina))
+            $pagina = $this->numPage();
+        
+        if(isset($this->_orientacion_distinta[$pagina]))
+            return $this->_orientacion_distinta[$pagina];
+        else 
+            return $this->orientacion;
     }
 
     /**
@@ -132,7 +147,7 @@ class MECON_PDF {
      */
     function display() 
     {
-        header("Content-Disposition: filename=Doc.pdf");
+        header("Content-Disposition: filename=".$this->_nombre);
         header("Content-Type: application/pdf");
         $temp = $this->toPDF();
         header('Content-Length: ' . strlen($temp));
@@ -164,8 +179,6 @@ class MECON_PDF {
      */
     function addText($X, $Y, $texto, $estilo = '', $pag = null, $transformacion
     = null)    {
-        //@TODO Ver si $texto es un objeto
-        
         $x = $X;
         $y = $Y;
         if(is_null($transformacion))
@@ -318,7 +331,15 @@ class MECON_PDF {
      * @access public
      */
     function wrapLine($texto, $l_max, $attr) {
-        return $this->_pdf->wrap_line ($texto, $l_max, $attr);
+        //El if lo estoy haciendo porque en la funcion wordwrap de la libreria
+        //externa no tienen en cuenta que te pueden pasar un texto vacio a
+        //wrapear -> Amerita un mail a los autores.
+        if ($texto) {
+            return $this->_pdf->wrap_line ($texto, $l_max, $attr);
+        }
+        else {
+            return '';
+        }
     }
 
     /**
@@ -332,7 +353,15 @@ class MECON_PDF {
      * @access public
      */
     function wordWrap($texto, $l_max, $attr) {
-        return $this->_pdf->word_wrap ($texto, $l_max, $attr);
+        //El if lo estoy haciendo porque en la funcion wordwrap de la libreria
+        //externa no tienen en cuenta que te pueden pasar un texto vacio a
+        //wrapear -> Amerita un mail a los autores.
+        if ($texto) {
+            return $this->_pdf->word_wrap ($texto, $l_max, $attr);
+        }
+        else {
+            return array();
+        }
     }
     
     /**
@@ -408,7 +437,7 @@ class MECON_PDF {
     {
         if(is_null($orientacion))
             $orientacion = $this->getOrientation($pagina);
-         switch (strtolower($orientacion)) {
+        switch (strtolower($orientacion)) {
             case 'landscape':
                 $width = $this->_config['Yf'] - $this->_config['Yi'];
                 break;
@@ -431,7 +460,7 @@ class MECON_PDF {
     {
         if(is_null($orientacion))
             $orientacion = $this->getOrientation($pagina);
-         switch (strtolower($orientacion)) {
+        switch (strtolower($orientacion)) {
             case 'landscape':
                 $height = $this->_config['Xf'] - $this->_config['Xi'];
                 break;