1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
8 meconlib is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 meconlib is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: mar abr 27 12:25:05 ART 2004
22 Autor: Martin Marrese <mmarre@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
27 require_once 'MECON/PDF/Header.php';
30 * Libreria de header por defecto en PDF.
32 class MECON_PDF_HeaderDefecto extends MECON_PDF_Header {
34 * Configuración del encabezado. Solamente lo que hace al tamaño y
35 * orientación pasados por parametro en el constructor.
50 * @var bool $paginador
53 var $paginador = true;
56 * Fecha. Si es true se pone la fecha del servidor, si es false no se pone
57 * nada, en caso contrario se pone lo que haya en esta variable.
65 * @var string $seccion
72 * @var string $subseccion
75 var $subseccion = 'Ministerio de Economia';
80 * @param string $tam Tamaño de las hojas.
81 * @param string $ori Orientacion de las hojaz (portrait o landscape).
86 function MECON_PDF_HeaderDefecto($tam = "a4", $ori = "portrait") {
87 $tmp = include 'MECON/PDF/HeaderDefecto/medidas.php' ;
88 $this->_config = $tmp[$tam][$ori]['encabezado'];
90 //Ver en donde poner esto
91 if (@$this->_config['logo']['path']) {
92 $this->logo = $this->_config['logo']['path'];
97 * Funcion que agrega el contenido del encabezado al PDF.
99 * @param &Object $MARCO MECON_PDF_Marco.
104 function toPdf(&$MARCO) {
105 $this->_addLogo($MARCO);
106 $this->_addSeccion($MARCO);
107 $this->_addSubseccion($MARCO);
108 $this->_addPager($MARCO);
109 $this->_addDate($MARCO);
110 $this->_addHeaderRectangle($MARCO);
114 * Devuelve el espacio (altura) que ocupa el encabezado.
119 function getAltura() {
120 return $this->_config['Yi'];
124 * Funcion que agrega el logo al encabezado de una pagina.
126 * @param &Object $MARCO MECON_PDF_Marco.
131 function _addLogo(&$MARCO) {
133 $MARCO->addImage($this->logo, $this->_config['logo']['X'],
134 $this->_config['logo']['Y'], null, 'jpg');
139 * Funcion que agrega la seccion al encabezado de una pagina.
142 * @param &Object $MARCO MECON_PDF_Marco.
146 function _addSeccion(&$MARCO) {
147 if ($this->seccion) {
148 $tmp = $MARCO->strlen($this->seccion, $this->_config['seccion']);
149 $tmp2 = $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi'];
151 $this->seccion = $MARCO->wrapLine ($this->seccion, $tmp2,
152 $this->_config['seccion']);
153 $tmp = $MARCO->strlen($this->seccion, $this->_config['seccion']);
155 $init = $this->_config['linea1']['Xi'] + ( $this->_config['linea2']['Xi']
156 - $this->_config['linea1']['Xi'] - $tmp) / 2;
157 $MARCO->addText($init, $this->_config['seccion']['Y'], $this->seccion,
158 $this->_config['seccion']);
163 * Funcion que agrega la subseccion al encabezado de una pagina.
166 * @param &Object $MARCO MECON_PDF_Marco.
170 function _addSubSeccion(&$MARCO) {
171 if ($this->subseccion) {
172 $tmp = $MARCO->strlen($this->subseccion, $this->_config['subseccion']);
173 $tmp2 = $this->_config['linea2']['Xi'] - $this->_config['linea1']['Xi'];
175 $this->subseccion = $MARCO->wrapLine ($this->subseccion, $tmp2,
176 $this->_config['subseccion']);
177 $tmp = $MARCO->strlen($this->subseccion, $this->_config['subseccion']);
179 $init = $this->_config['linea1']['Xi'] + ( $this->_config['linea2']['Xi']
180 - $this->_config['linea1']['Xi'] - $tmp) / 2;
181 $MARCO->addText($init, $this->_config['subseccion']['Y'], $this->subseccion,
182 $this->_config['subseccion']);
187 * Funcion que agrega el paginador al encabezado de una pagina.
190 * @param &Object $MARCO MECON_PDF_Marco.
194 function _addPager(&$MARCO) {
195 if ($this->paginador) {
196 $txt = 'Página '.$MARCO->numPage().' de '.
197 $MARCO->countPages();
198 $tmp = $MARCO->strlen($txt, $this->_config['paginador']);
199 $init = $this->_config['linea2']['Xi'] + ( $this->_config['Xf']
200 - $this->_config['linea2']['Xi'] - $tmp) / 2;
201 $MARCO->addText($init, $this->_config['paginador']['Y'], $txt,
202 $this->_config['paginador']);
207 * Funcion que permite agregar la fecha al encabezado de una pagina.
210 * @param &Object $MARCO MECON_PDF_Marco.
214 function _addDate(&$MARCO) {
216 if (is_a($this->fecha, 'Date')) {
217 $this->fecha = $this->fecha->format("%d/%m/%Y");
219 elseif ($this->fecha === true) {
220 $this->fecha = date("d/m/Y");
222 $tmp = $MARCO->strlen($this->fecha, $this->_config['fecha']);
223 $init = $this->_config['linea2']['Xi'] + ( $this->_config['Xf']
224 - $this->_config['linea2']['Xi'] - $tmp) / 2;
225 $MARCO->addText($init, $this->_config['fecha']['Y'], $this->fecha,
226 $this->_config['fecha']);
231 * Funcion que arma el recuadro del encabezado de las paginas.
234 * @param &Object $MARCO MECON_PDF_Marco.
238 function _addHeaderRectangle(&$MARCO) {
240 $MARCO->addRectangle ($this->_config['Xi'], $this->_config['Yi'],
241 $this->_config['Xf'], $this->_config['Yf'], '');
242 $MARCO->addLine($this->_config['linea1']['Xi'],
243 $this->_config['linea1']['Yi'], $this->_config['linea1']['Xf'],
244 $this->_config['linea1']['Yf'], '');
245 $MARCO->addLine($this->_config['linea2']['Xi'],
246 $this->_config['linea2']['Yi'], $this->_config['linea2']['Xf'],
247 $this->_config['linea2']['Yf'], '');