* Liberia base para el manejo de pdf's.
*/
class MECON_PDF {
+
+ /**
+ * Configuracion
+ * @var arary $config
+ * @access protected
+ */
+ var $_config = array ();
/**
* Libreria externa.
/**
* Class constructor.
*
+ * @param string $tam Tipo de hoja
+ *
* @return void
* @access public
*/
- function MECON_PDF()
+ function MECON_PDF($tam = "a4")
{
$this->_pdf = new pdffile;
+ $this->_config = include 'MECON/PDF/medidas.php';
+ $this->_config = $this->_config[$tam];
}
/**
* @param string $texto $texto
* @param int $estilo $estilo
* @param int $pag Numero de pagina virtual.
+ * @param string $transformacion Indica la orientacion de la pagina.
*
* @return void
* @access public
*/
- function addText($X, $Y, $texto, $estilo = '', $pag = null)
- {
+ function addText($X, $Y, $texto, $estilo = '', $pag = null, $transformacion = '') {
+ //@TODO Ver si $texto es un objeto
+
+ $x = $X;
+ $y = $Y;
+ switch (strtolower($transformacion)) {
+ case 'portrait':
+ $X = $this->_portraitX($x,$y);
+ $Y = $this->_portraitY($x,$y);
+ break;
+ case 'landscape':
+ $X = $this->_landscapeX($x,$y);
+ $Y = $this->_landscapeY($x,$y);
+ $estilo['rotation'] = 90;
+ break;
+ }
$this->_pdf->draw_text($X, $Y, $texto, $this->refPage($pag), $estilo);
}
* @param int $Yf $Yf
* @param long $estilo $estilo
* @param int $pag Numero de pagina virtual.
+ * @param string $transformacion Indica la orientacion de la pagina.
*
* @return void
* @access public
*/
- function addRectangle($Xi, $Yi, $Xf, $Yf, $estilo = '', $pag = null)
+ function addRectangle($Xi, $Yi, $Xf, $Yf, $estilo = '', $pag = null,
+ $transformacion = 'portrait')
{
- $this->_pdf->draw_rectangle($Xi, $Yi, $Xf, $Yf, $this->refPage($pag), $estilo);
+ $xi = $Xi;
+ $yi = $Yi;
+ $xf = $Xf;
+ $yf = $Yf;
+ switch (strtolower($transformacion)) {
+ case 'portrait':
+ $Xi = $this->_portraitX($xi,$yi);
+ $Yi = $this->_portraitY($xi,$yi);
+ $Xf = $this->_portraitX($xf,$yf);
+ $Yf = $this->_portraitY($xf,$yf);
+ break;
+ case 'landscape':
+ $Xi = $this->_landscapeX($xi,$yi);
+ $Yi = $this->_landscapeY($xi,$yi);
+ $Xf = $this->_landscapeX($xf,$yf);
+ $Yf = $this->_landscapeY($xf,$yf);
+ break;
+ }
+ $this->_pdf->draw_rectangle($Yi, $Xi, $Yf, $Xf, $this->refPage($pag), $estilo);
}
/**
* @param int $Yf $Yf
* @param int $estilo $estilo
* @param int $pag Numero de pagina virtual.
+ * @param string $transformacion Indica la orientacion de la pagina.
*
* @return void
* @access public
*/
- function addLine($Xi, $Yi, $Xf, $Yf, $estilo = '', $pag = null)
+ function addLine($Xi, $Yi, $Xf, $Yf, $estilo = '', $pag = null,
+ $transformacion = 'portrait')
{
- $this->_pdf->draw_line(array($Xi,$Xf),array($Yi,$Yf),
+ $xi = $Xi;
+ $yi = $Yi;
+ $xf = $Xf;
+ $yf = $Yf;
+ switch (strtolower($transformacion)) {
+ case 'portrait':
+ $Xi = $this->_portraitX($xi,$yi);
+ $Yi = $this->_portraitY($xi,$yi);
+ $Xf = $this->_portraitX($xf,$yf);
+ $Yf = $this->_portraitY($xf,$yf);
+ break;
+ case 'landscape':
+ $Xi = $this->_landscapeX($xi,$yi);
+ $Yi = $this->_landscapeY($xi,$yi);
+ $Xf = $this->_landscapeX($xf,$yf);
+ $Yf = $this->_landscapeY($xf,$yf);
+ break;
+ }
+ $this->_pdf->draw_line(array($Xi,$Xf),array($Yi,$Yf),
$this->refPage($pag),$estilo);
}
* @param int $Y Posixion vertical.
* @param int $pag Numero de pagina virtual.
* @param string $formato Formato del archivo (Extension).
+ * @param string $transformacion Indica la orientacion de la pagina.
*
* @return void
* @access public
*/
- function addImage($archivo, $X, $Y, $pag = null, $formato = null) {
+ function addImage($archivo, $X, $Y, $pag = null, $formato = null,
+ $transformacion = 'portrait') {
+ $x = $X;
+ $y = $Y;
+ switch (strtolower($transformacion)) {
+ case 'portrait':
+ $X = $this->_portraitX($x,$y);
+ $Y = $this->_portraitY($x,$y);
+ break;
+ case 'landscape':
+ $X = $this->_landscapeX($x,$y);
+ $Y = $this->_landscapeY($x,$y);
+ break;
+ }
$formato = strtolower($formato);
switch ($formato) {
case 'jpg':
return $this->_pdf->wrap_line ($texto, $l_max, $attr);
}
+ /**
+ * Funcion que wrappea una linea.
+ *
+ * @param strgin $texto Texto que quiere wrappearse.
+ * @param int $l_max Largo maximo del texto.
+ * @param array $attr Atributos del texto.
+ *
+ * @return string
+ * @access public
+ */
+ function wordWrap($texto, $l_max, $attr) {
+ return $this->_pdf->word_wrap ($texto, $l_max, $attr);
+ }
+
/**
* Funcion que calcula cuanto va a ocupar cierto texto segun su formato en
* una pagina.
function getPages() {
return $this->_paginas;
}
+
+ /**
+ * Funcion que devuelve el ancho de la pagina.
+ *
+ * @param string $orientacion Orientacion de la pagina.
+ *
+ * @return int
+ * @access public
+ */
+ function getWidth($orientacion = 'portrait')
+ {
+ switch (strtolower($orientacion)) {
+ case 'landscape':
+ $width = $this->_config['Yf'] - $this->_config['Yi'];
+ break;
+ default:
+ $width = $this->_config['Xf'] - $this->_config['Xi'];
+ }
+ return $width;
+
+ }
+
+ /**
+ * Funcion que devuelve el alto de la pagina.
+ *
+ * @param string $orientacion Orientacion de la pagina.
+ *
+ * @return int
+ * @access public
+ */
+ function getHeight($orientacion = 'portrait')
+ {
+ switch (strtolower($orientacion)) {
+ case 'landscape':
+ $height = $this->_config['Xf'] - $this->_config['Xi'];
+ break;
+ default:
+ $height = $this->_config['Yf'] - $this->_config['Yi'];
+ }
+ return $height;
+ }
+
+ /**
+ * Funcion que devuelve la rotacion y traslacion para landscape. Variable X.
+ *
+ * @param int $x X
+ * @param int $y Y
+ *
+ * @return int
+ * @access protected
+ */
+ function _landscapeX($x, $y)
+ {
+ return -$y + $this->_config['Xf'];
+ }
+
+ /**
+ * Funcion que devuelve la rotacion y traslacion para landscape. Variable Y.
+ *
+ * @param int $x X
+ * @param int $y Y
+ *
+ * @return int
+ * @access protected
+ */
+ function _landscapeY($x, $y)
+ {
+ return $x + $this->_config['Yi'];
+ }
+
+ /**
+ * Funcion que devuelve la traslacion para portrait. Variable X.
+ *
+ * @param int $x X
+ * @param int $y Y
+ *
+ * @return int
+ * @access protected
+ */
+ function _portraitX($x, $y)
+ {
+ return $x + $this->_config['Xi'];
+ }
+
+ /**
+ * Funcion que devuelve la traslacion para portrait. Variable Y.
+ *
+ * @param int $x X
+ * @param int $y Y
+ *
+ * @return int
+ * @access protected
+ */
+ function _portraitY($x, $y)
+ {
+ return $y + $this->_config['Yi'];
+ }
}
?>
\ No newline at end of file