X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/0dbb40b231defb31e62e2c0a56c1bc1abd85ec06..393fb3d17e7a1d3416434e35982e1a808d1d18de:/lib/MECON/PDF.php?ds=sidebyside diff --git a/lib/MECON/PDF.php b/lib/MECON/PDF.php index fc4011e..a469ed0 100644 --- a/lib/MECON/PDF.php +++ b/lib/MECON/PDF.php @@ -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;