]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/PDF.php
BugFix.
[mecon/meconlib.git] / lib / MECON / PDF.php
index e4f1b3c21cf6e7dc7cfe15abdd7eb8c3384ce2e9..a5e85e7dd94a750c07fadfe7a622de7ddaa25f84 100644 (file)
@@ -75,21 +75,31 @@ 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 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;
     }
 
     /**
@@ -137,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));
@@ -269,7 +279,7 @@ class MECON_PDF {
     }
 
     /**
-     * Funcion que permite agregar una imagen JPG a una pagina.
+     * Funcion que permite agregar una imagen JPG o PNG a una pagina.
      *
      * @param string $archivo Path completo del archivo imagen.
      * @param int    $X Posicion Horizontal.
@@ -277,12 +287,13 @@ class MECON_PDF {
      * @param int    $pag Numero de pagina virtual.
      * @param string $formato Formato del archivo (Extension).
      * @param string $transformacion Indica la orientacion de la pagina.
+     * @param array  $param Parametros de la libreria.
      *
      * @return void
      * @access public
      */
     function addImage($archivo, $X, $Y, $pag = null, $formato = null,
-            $transformacion = null) {
+            $transformacion = null, $param = array()) {
         $x = $X;
         $y = $Y;
         if(is_null($transformacion))
@@ -295,19 +306,22 @@ class MECON_PDF {
             case 'landscape':
                 $X = $this->_landscapeX($x,$y);
                 $Y = $this->_landscapeY($x,$y);
+                $param['rotation'] = 90;
                 break;
         }
         $formato = strtolower($formato);
+        $fh = fopen($archivo, "r"); 
+        $filedata = fread($fh, filesize($archivo));
+        fclose($fh);
         switch ($formato) {
             case 'jpg':
-                $fh = fopen($archivo, "r"); 
-                $filedata = fread($fh, filesize($archivo));
-                fclose($fh);
                 $image = $this->_pdf->jfif_embed($filedata);
-                $this->_pdf->image_place($image, $Y, $X, 
-                        $this->refPage($pag));
+                break;
+            case 'png':
+                $image = $this->_pdf->png_embed($filedata);
                 break;
         }
+        $this->_pdf->image_place($image, $Y, $X, $this->refPage($pag), $param);
     }
 
     /**
@@ -321,7 +335,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 '';
+        }
     }
 
     /**
@@ -335,7 +357,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();
+        }
     }
     
     /**
@@ -499,5 +529,14 @@ class MECON_PDF {
     {
         return $y + $this->_config['Yi'];
     }
+
+    /**
+     * Funcion que devuelve el tamaƱo de una imagen.
+     *
+     * @param $oid Object id
+     */
+    function getImageSize($oid) {
+        return $this->get_image_size($oid);
+    }
 }
 ?>
\ No newline at end of file