------------------------------------------------------------------------------- $Id$ -----------------------------------------------------------------------------*/ require_once 'MLIB/PDF/Header.php'; /** * Libreria de header por defecto en PDF. */ class MLIB_PDF_HeaderDefecto extends MLIB_PDF_Header { /** * Configuración del encabezado. Solamente lo que hace al tamaño y * orientación pasados por parametro en el constructor. * @var array $config * @access protected */ var $_config = null; /** * Logo. * @var string $logo * @access public */ var $logo; /** * Paginador. * @var bool $paginador * @access public */ var $paginador = true; /** * Fecha. Si es true se pone la fecha del servidor, si es false no se pone * nada, en caso contrario se pone lo que haya en esta variable. * @var mixed $fecha * @access public */ var $fecha = true; /** * Seccion. * @var string $seccion * @access public */ var $seccion = ''; /** * SubSeccion. * @var string $subseccion * @access public */ var $subseccion = 'Ministerio de Economia'; /** * Class Constructor. * * @param string $tam Tamaño de las hojas. * @param string $ori Orientacion de las hojaz (portrait o landscape). * * @return void * @access public */ function MLIB_PDF_HeaderDefecto($tam = "a4", $ori = "portrait") { $tmp = include 'MLIB/PDF/HeaderDefecto/medidas.php' ; $this->_config = $tmp[$tam][$ori]['encabezado']; //Ver en donde poner esto if (@$this->_config['logo']['path']) { $this->logo = $this->_config['logo']['path']; } } /** * Funcion que agrega el contenido del encabezado al PDF. * * @param &Object $MARCO MLIB_PDF_Marco. * * @return void * @access public */ function toPdf(&$MARCO) { $this->_addLogo($MARCO); $this->_addSeccion($MARCO); $this->_addSubseccion($MARCO); $this->_addPager($MARCO); $this->_addDate($MARCO); $this->_addHeaderRectangle($MARCO); } /** * Devuelve el espacio (altura) que ocupa el encabezado. * * @return int * @access public */ function getAltura() { return $this->_config['Yi']; } /** * Funcion que agrega el logo al encabezado de una pagina. * * @param &Object $MARCO MLIB_PDF_Marco. * * @return void * @access protected */ function _addLogo(&$MARCO) { if ($this->logo) { $MARCO->addImage($this->logo, $this->_config['logo']['X'], $this->_config['logo']['Y'], null, 'jpg'); } } /** * Funcion que agrega la seccion al encabezado de una pagina. * * @return void * @param &Object $MARCO MLIB_PDF_Marco. * * @access protected */ function _addSeccion(&$MARCO) { if ($this->seccion) { $tmp = $MARCO->strlen($this->seccion, $this->_config['seccion']); $tmp2 = $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi']; if ($tmp >= $tmp2) { $this->seccion = $MARCO->wrapLine ($this->seccion, $tmp2, $this->_config['seccion']); $tmp = $MARCO->strlen($this->seccion, $this->_config['seccion']); } $init = $this->_config['linea1']['Xi'] + ( $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi'] - $tmp) / 2; $MARCO->addText($init, $this->_config['seccion']['Y'], $this->seccion, $this->_config['seccion']); } } /** * Funcion que agrega la subseccion al encabezado de una pagina. * * @return void * @param &Object $MARCO MLIB_PDF_Marco. * * @access protected */ function _addSubSeccion(&$MARCO) { if ($this->subseccion) { $tmp = $MARCO->strlen($this->subseccion, $this->_config['subseccion']); $tmp2 = $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi']; if ($tmp >= $tmp2) { $this->subseccion = $MARCO->wrapLine ($this->subseccion, $tmp2, $this->_config['subseccion']); $tmp = $MARCO->strlen($this->subseccion, $this->_config['subseccion']); } $init = $this->_config['linea1']['Xi'] + ( $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi'] - $tmp) / 2; $MARCO->addText($init, $this->_config['subseccion']['Y'], $this->subseccion, $this->_config['subseccion']); } } /** * Funcion que agrega el paginador al encabezado de una pagina. * * @return void * @param &Object $MARCO MLIB_PDF_Marco. * * @access protected */ function _addPager(&$MARCO) { if ($this->paginador) { $txt = 'Página '.$MARCO->numPage().' de '. $MARCO->countPages(); $tmp = $MARCO->strlen($txt, $this->_config['paginador']); $init = $this->_config['linea2']['Xi'] + ( $this->_config['Xf'] - $this->_config['linea2']['Xi'] - $tmp) / 2; $MARCO->addText($init, $this->_config['paginador']['Y'], $txt, $this->_config['paginador']); } } /** * Funcion que permite agregar la fecha al encabezado de una pagina. * * @return void * @param &Object $MARCO MLIB_PDF_Marco. * * @access protected */ function _addDate(&$MARCO) { if ($this->fecha) { if (is_a($this->fecha, 'Date')) { $this->fecha = $this->fecha->format("%d/%m/%Y"); } elseif ($this->fecha === true) { $this->fecha = date("d/m/Y"); } $tmp = $MARCO->strlen($this->fecha, $this->_config['fecha']); $init = $this->_config['linea2']['Xi'] + ( $this->_config['Xf'] - $this->_config['linea2']['Xi'] - $tmp) / 2; $MARCO->addText($init, $this->_config['fecha']['Y'], $this->fecha, $this->_config['fecha']); } } /** * Funcion que arma el recuadro del encabezado de las paginas. * * @return void * @param &Object $MARCO MLIB_PDF_Marco. * * @access protected */ function _addHeaderRectangle(&$MARCO) { //Armo el recuadro $MARCO->addRectangle ($this->_config['Xi'], $this->_config['Yi'], $this->_config['Xf'], $this->_config['Yf'], ''); $MARCO->addLine($this->_config['linea1']['Xi'], $this->_config['linea1']['Yi'], $this->_config['linea1']['Xf'], $this->_config['linea1']['Yf'], ''); $MARCO->addLine($this->_config['linea2']['Xi'], $this->_config['linea2']['Yi'], $this->_config['linea2']['Xf'], $this->_config['linea2']['Yf'], ''); } } ?>