1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
4 -------------------------------------------------------------------------------
5 This file is part of mlib.
7 mlib is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your option)
12 mlib is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License; if not,
17 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18 Boston, MA 02111-1307 USA
19 -------------------------------------------------------------------------------
20 Creado: mar abr 27 12:25:05 ART 2004
21 Autor: Martin Marrese <mmarre@mecon.gov.ar>
22 -------------------------------------------------------------------------------
24 -----------------------------------------------------------------------------*/
26 require_once 'MLIB/PDF/Header.php';
29 * Libreria de header por defecto en PDF.
31 class MLIB_PDF_HeaderDefecto extends MLIB_PDF_Header {
33 * Configuración del encabezado. Solamente lo que hace al tamaño y
34 * orientación pasados por parametro en el constructor.
49 * @var bool $paginador
52 var $paginador = true;
55 * Fecha. Si es true se pone la fecha del servidor, si es false no se pone
56 * nada, en caso contrario se pone lo que haya en esta variable.
64 * @var string $seccion
71 * @var string $subseccion
74 var $subseccion = 'Ministerio de Economia';
79 * @param string $tam Tamaño de las hojas.
80 * @param string $ori Orientacion de las hojaz (portrait o landscape).
85 function MLIB_PDF_HeaderDefecto($tam = "a4", $ori = "portrait") {
86 $tmp = include 'MLIB/PDF/HeaderDefecto/medidas.php' ;
87 $this->_config = $tmp[$tam][$ori]['encabezado'];
89 //Ver en donde poner esto
90 if (@$this->_config['logo']['path']) {
91 $this->logo = $this->_config['logo']['path'];
96 * Funcion que agrega el contenido del encabezado al PDF.
98 * @param &Object $MARCO MLIB_PDF_Marco.
103 function toPdf(&$MARCO) {
104 $this->_addLogo($MARCO);
105 $this->_addSeccion($MARCO);
106 $this->_addSubseccion($MARCO);
107 $this->_addPager($MARCO);
108 $this->_addDate($MARCO);
109 $this->_addHeaderRectangle($MARCO);
113 * Devuelve el espacio (altura) que ocupa el encabezado.
118 function getAltura() {
119 return $this->_config['Yi'];
123 * Funcion que agrega el logo al encabezado de una pagina.
125 * @param &Object $MARCO MLIB_PDF_Marco.
130 function _addLogo(&$MARCO) {
132 $MARCO->addImage($this->logo, $this->_config['logo']['X'],
133 $this->_config['logo']['Y'], null, 'jpg');
138 * Funcion que agrega la seccion al encabezado de una pagina.
141 * @param &Object $MARCO MLIB_PDF_Marco.
145 function _addSeccion(&$MARCO) {
146 if ($this->seccion) {
147 $tmp = $MARCO->strlen($this->seccion, $this->_config['seccion']);
148 $tmp2 = $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi'];
150 $this->seccion = $MARCO->wrapLine ($this->seccion, $tmp2,
151 $this->_config['seccion']);
152 $tmp = $MARCO->strlen($this->seccion, $this->_config['seccion']);
154 $init = $this->_config['linea1']['Xi'] + ( $this->_config['linea2']['Xi']
155 - $this->_config['linea1']['Xi'] - $tmp) / 2;
156 $MARCO->addText($init, $this->_config['seccion']['Y'], $this->seccion,
157 $this->_config['seccion']);
162 * Funcion que agrega la subseccion al encabezado de una pagina.
165 * @param &Object $MARCO MLIB_PDF_Marco.
169 function _addSubSeccion(&$MARCO) {
170 if ($this->subseccion) {
171 $tmp = $MARCO->strlen($this->subseccion, $this->_config['subseccion']);
172 $tmp2 = $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi'];
174 $this->subseccion = $MARCO->wrapLine ($this->subseccion, $tmp2,
175 $this->_config['subseccion']);
176 $tmp = $MARCO->strlen($this->subseccion, $this->_config['subseccion']);
178 $init = $this->_config['linea1']['Xi'] + ( $this->_config['linea2']['Xi']
179 - $this->_config['linea1']['Xi'] - $tmp) / 2;
180 $MARCO->addText($init, $this->_config['subseccion']['Y'], $this->subseccion,
181 $this->_config['subseccion']);
186 * Funcion que agrega el paginador al encabezado de una pagina.
189 * @param &Object $MARCO MLIB_PDF_Marco.
193 function _addPager(&$MARCO) {
194 if ($this->paginador) {
195 $txt = 'Página '.$MARCO->numPage().' de '.
196 $MARCO->countPages();
197 $tmp = $MARCO->strlen($txt, $this->_config['paginador']);
198 $init = $this->_config['linea2']['Xi'] + ( $this->_config['Xf']
199 - $this->_config['linea2']['Xi'] - $tmp) / 2;
200 $MARCO->addText($init, $this->_config['paginador']['Y'], $txt,
201 $this->_config['paginador']);
206 * Funcion que permite agregar la fecha al encabezado de una pagina.
209 * @param &Object $MARCO MLIB_PDF_Marco.
213 function _addDate(&$MARCO) {
215 if (is_a($this->fecha, 'Date')) {
216 $this->fecha = $this->fecha->format("%d/%m/%Y");
218 elseif ($this->fecha === true) {
219 $this->fecha = date("d/m/Y");
221 $tmp = $MARCO->strlen($this->fecha, $this->_config['fecha']);
222 $init = $this->_config['linea2']['Xi'] + ( $this->_config['Xf']
223 - $this->_config['linea2']['Xi'] - $tmp) / 2;
224 $MARCO->addText($init, $this->_config['fecha']['Y'], $this->fecha,
225 $this->_config['fecha']);
230 * Funcion que arma el recuadro del encabezado de las paginas.
233 * @param &Object $MARCO MLIB_PDF_Marco.
237 function _addHeaderRectangle(&$MARCO) {
239 $MARCO->addRectangle ($this->_config['Xi'], $this->_config['Yi'],
240 $this->_config['Xf'], $this->_config['Yf'], '');
241 $MARCO->addLine($this->_config['linea1']['Xi'],
242 $this->_config['linea1']['Yi'], $this->_config['linea1']['Xf'],
243 $this->_config['linea1']['Yf'], '');
244 $MARCO->addLine($this->_config['linea2']['Xi'],
245 $this->_config['linea2']['Yi'], $this->_config['linea2']['Xf'],
246 $this->_config['linea2']['Yf'], '');