RSS

FPDF: Reporte dinámico

28 Nov

Ahora toca el turno a hacer un reporte dinámicamente extrayendo de la base de datos mediante un SELECT.

Aunque pareciera más «difícil» por el hecho de obtener los datos de la base de datos… no lo es :). De hecho es tan sencillo como retornar un array asociativo, como el de los ejemplos anteriores, en la clase dedicada a la base de datos y listo.

Los métodos que se han usado antes, son exactamente los mismos, acá lo único que se agregará, son los dos archivos necesarios para la comunicación con la base de datos y mediante el método donde se realice el SELECT, devuelva un arreglo asociativo.

En el index.php se creará un objeto de la clase myDBC.php y en una variable se guardará el array asociativa que regresa el método que hace el SELECT, es decir, el método seleccionar_datos( ). Después, esta variable se le pasa al método tablaHorizontal( ).

El ejemplo llevará los siguientes archivos:

  • dbconfig.php: Información para la conexión a la base de datos.
  • myDBC.php: Estará el método para obtener el array asociativo.
  • PDF.php: Para generar el pdf.
  • index.php: Donde se llamarán los métodos.

La base de datos se llama ‘usuarios’ con una tabla llamada ‘registro’

Detalles de Tabla registro

Detalles de Tabla registro

Vamos al código:

dbconfig.php

<?php
	define("DB_SERVER", "localhost");
	define("DB_USER", "root");
	define("DB_PASS", "**********");
	define("DB_NAME", "usuarios");
?>

myDBC.php

<?php

class myDBC {
	public $mysqli = null;

	public function __construct() {

		include_once "dbconfig.php";
    	$this->mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

		if ($this->mysqli->connect_errno) {
			echo "Error MySQLi: ("&nbsp. $this->mysqli->connect_errno.") " . $this->mysqli->connect_error;
			exit();
		}
		$this->mysqli->set_charset("utf8");
	}

	public function __destruct() {
		$this->CloseDB();
	}

    public function runQuery($qry) {
        $result = $this->mysqli->query($qry);
        return $result;
    }

 	public function seleccionar_datos()
	{
		$q = 'select nombre, nick, correo from registro';

		$result = $this->mysqli->query($q);

		//Array asociativo que contendrá los datos
		$valores = array();

		if( $result->num_rows == 0)
		{
			echo'<script type="text/javascript">
				alert("ningun registro");
				</script>';
		}

		else{

			while($row = mysqli_fetch_assoc($result))
			{
				//Se crea un arreglo asociativo
				array_push($valores, $row);
			}
		}
		//Regresa array asociativo
		return $valores;
	}
}
?>

PDF.php

<?php
require('fpdf/fpdf.php');

class PDF extends FPDF
{
    function cabeceraHorizontal($cabecera)
    {
		$this->SetXY(10, 10);
		$this->SetFont('Arial','B',10);
		$this->SetFillColor(2,157,116);//Fondo verde de celda
		$this->SetTextColor(240, 255, 240); //Letra color blanco
		$ejeX = 10;
		foreach($cabecera as $fila)
		{
			$this->RoundedRect($ejeX, 10, 40, 7, 2, 'FD');
	    	$this->CellFitSpace(40,7, utf8_decode($fila),0, 0 , 'C');
	    	$ejeX = $ejeX + 40;
    	}
    }

    function datosHorizontal($datos)
    {
		$this->SetXY(10,17);
		$this->SetFont('Arial','',10);
		$this->SetFillColor(229, 229, 229); //Gris tenue de cada fila
		$this->SetTextColor(3, 3, 3); //Color del texto: Negro
		$bandera = false; //Para alternar el relleno
		$ejeY = 17; //Aquí se encuentra la primer CellFitSpace e irá incrementando
		$letra = 'D'; //'D' Dibuja borde de cada CellFitSpace -- 'FD' Dibuja borde y rellena
		foreach($datos as $fila)
		{
			//Por cada 3 CellFitSpace se crea un RoundedRect encimado
			//El parámetro $letra de RoundedRect cambiará en cada iteración
			//para colocar FD y D, la primera iteración es D
			//Solo la celda de enmedio llevará bordes, izquierda y derecha
			//Las celdas laterales colocarlas sin borde
			$this->RoundedRect(10, $ejeY, 120, 7, 2, $letra);
			//$this->CellFitSpace(40,7, utf8_decode($fila['id_user']),0, 0 , 'L' );
			$this->CellFitSpace(40,7, utf8_decode($fila['nombre']),0, 0 , 'L' );
			$this->CellFitSpace(40,7, utf8_decode($fila['nick']),'LR', 0 , 'L' );
			$this->CellFitSpace(40,7, utf8_decode($fila['correo']),0, 0 , 'L' );

			$this->Ln();
			//Condición ternaria que cambia el valor de $letra
			($letra == 'D') ? $letra = 'FD' : $letra = 'D';
			//Aumenta la siguiente posición de Y (recordar que X es fijo)
			//Se suma 7 porque cada celda tiene esa altura
			$ejeY = $ejeY + 7;
    	}
    }

    function tablaHorizontal($cabeceraHorizontal, $datosHorizontal)
    {
		$this->cabeceraHorizontal($cabeceraHorizontal);
		$this->datosHorizontal($datosHorizontal);
	}

	//**************************************************************************************************************
	function CellFit($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='', $scale=false, $force=true)
    {
        //Get string width
        $str_width=$this->GetStringWidth($txt);

        //Calculate ratio to fit cell
        if($w==0)
            $w = $this->w-$this->rMargin-$this->x;
        $ratio = ($w-$this->cMargin*2)/$str_width;

        $fit = ($ratio < 1 || ($ratio > 1 && $force));
        if ($fit)
        {
            if ($scale)
            {
                //Calculate horizontal scaling
                $horiz_scale=$ratio*100.0;
                //Set horizontal scaling
                $this->_out(sprintf('BT %.2F Tz ET',$horiz_scale));
            }
            else
            {
                //Calculate character spacing in points
                $char_space=($w-$this->cMargin*2-$str_width)/max($this->MBGetStringLength($txt)-1,1)*$this->k;
                //Set character spacing
                $this->_out(sprintf('BT %.2F Tc ET',$char_space));
            }
            //Override user alignment (since text will fill up cell)
            $align='';
        }

        //Pass on to Cell method
        $this->Cell($w,$h,$txt,$border,$ln,$align,$fill,$link);

        //Reset character spacing/horizontal scaling
        if ($fit)
            $this->_out('BT '.($scale ? '100 Tz' : '0 Tc').' ET');
    }

    function CellFitSpace($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
    {
        $this->CellFit($w,$h,$txt,$border,$ln,$align,$fill,$link,false,false);
    }

    //Patch to also work with CJK double-byte text
    function MBGetStringLength($s)
    {
        if($this->CurrentFont['type']=='Type0')
        {
            $len = 0;
            $nbbytes = strlen($s);
            for ($i = 0; $i < $nbbytes; $i++)
            {
                if (ord($s[$i])<128)
                    $len++;
                else
                {
                    $len++;
                    $i++;
                }
            }
            return $len;
        }
        else
            return strlen($s);
    }
//**********************************************************************************************

 function RoundedRect($x, $y, $w, $h, $r, $style = '', $angle = '1234')
    {
        $k = $this->k;
        $hp = $this->h;
        if($style=='F')
            $op='f';
        elseif($style=='FD' or $style=='DF')
            $op='B';
        else
            $op='S';
        $MyArc = 4/3 * (sqrt(2) - 1);
        $this->_out(sprintf('%.2f %.2f m', ($x+$r)*$k, ($hp-$y)*$k ));

        $xc = $x+$w-$r;
        $yc = $y+$r;
        $this->_out(sprintf('%.2f %.2f l', $xc*$k, ($hp-$y)*$k ));
        if (strpos($angle, '2')===false)
            $this->_out(sprintf('%.2f %.2f l', ($x+$w)*$k, ($hp-$y)*$k ));
        else
            $this->_Arc($xc + $r*$MyArc, $yc - $r, $xc + $r, $yc - $r*$MyArc, $xc + $r, $yc);

        $xc = $x+$w-$r;
        $yc = $y+$h-$r;
        $this->_out(sprintf('%.2f %.2f l', ($x+$w)*$k, ($hp-$yc)*$k));
        if (strpos($angle, '3')===false)
            $this->_out(sprintf('%.2f %.2f l', ($x+$w)*$k, ($hp-($y+$h))*$k));
        else
            $this->_Arc($xc + $r, $yc + $r*$MyArc, $xc + $r*$MyArc, $yc + $r, $xc, $yc + $r);

        $xc = $x+$r;
        $yc = $y+$h-$r;
        $this->_out(sprintf('%.2f %.2f l', $xc*$k, ($hp-($y+$h))*$k));
        if (strpos($angle, '4')===false)
            $this->_out(sprintf('%.2f %.2f l', ($x)*$k, ($hp-($y+$h))*$k));
        else
            $this->_Arc($xc - $r*$MyArc, $yc + $r, $xc - $r, $yc + $r*$MyArc, $xc - $r, $yc);

        $xc = $x+$r ;
        $yc = $y+$r;
        $this->_out(sprintf('%.2f %.2f l', ($x)*$k, ($hp-$yc)*$k ));
        if (strpos($angle, '1')===false)
        {
            $this->_out(sprintf('%.2f %.2f l', ($x)*$k, ($hp-$y)*$k ));
            $this->_out(sprintf('%.2f %.2f l', ($x+$r)*$k, ($hp-$y)*$k ));
        }
        else
            $this->_Arc($xc - $r, $yc - $r*$MyArc, $xc - $r*$MyArc, $yc - $r, $xc, $yc - $r);
        $this->_out($op);
    }

    function _Arc($x1, $y1, $x2, $y2, $x3, $y3)
    {
        $h = $this->h;
        $this->_out(sprintf('%.2f %.2f %.2f %.2f %.2f %.2f c ', $x1*$this->k, ($h-$y1)*$this->k,
            $x2*$this->k, ($h-$y2)*$this->k, $x3*$this->k, ($h-$y3)*$this->k));
    }
} // FIN Class PDF
?>

index.php

<?php
include_once('PDF.php');
include_once('myDBC.php');

$seleccion = new myDBC();

$datosReporte = $seleccion->seleccionar_datos();

$pdf = new PDF();

$pdf->AddPage();

$miCabecera = array( 'Nombre', 'Nick', 'Correo');

$pdf->tablaHorizontal($miCabecera, $datosReporte);

$pdf->Output(); //Salida al navegador
?>

Acá la salida:

Reporte dinámico

Reporte dinámico

Espero que este código sea de utilidad y pues, habrá que modificar a sus necesidades 🙂

Te invito a mi sitio web personal en donde tengo mi CV en línea y extras que ojalá te interesen huguidugui.com

ringhugos@gmail.com || @huguidugui

 
38 comentarios

Publicado por en 28 noviembre, 2013 en FPDF, PHP

 

Etiquetas: , ,

38 Respuestas a “FPDF: Reporte dinámico

  1. Guillermo

    5 junio, 2014 at 16:32

    Hola, recién comienzo con fpdf y me parecen interesantísimos tus artículos, Muy buenos ! Quisiera hacerte una pregunta: Trabajo con PHP / MySql y quiero «renderizar» la cabecera de una columna de una tabla, de manera que me muestre una imágen (pequeña claro) cómo podría hacer ?? Muchisimas gracias !!!

     
  2. Fco Escareno

    10 junio, 2014 at 21:11

    huguidugui sabrias alguna forma de estructurar la tabla si esta excede el limite de la hoja??
    me traigo los datos de mysql pero algunas consultas son demasiado largas tienen muchos campos y por consiguiente a la hora de crear el pdf me salen solo los que caben alrededor de 5 o 6 campos. Quisiera hacer algo asi como lo hace excel que los campos que sobran se creen debajo delfinal de la tabla.
    Un saludo..

     
    • huguidugui

      11 junio, 2014 at 03:10

      Hola qué tal Fco 😀

      Para lo que mencionas lo que se me ocurre a mí es, poner la página horizontal, darle el ancho específico a cada celda para que no ocupe más de lo que necesita para un campo (y usando cellFitSpace por si pasa un poco), además de bajar un poco el tamaño de fuente. Para poner filas de un tamaño específico, puedes usar algo como esto en tu método de cabecera de PDF.php

      for($i = 0; $i Cell(30, 7, $cabecera[$i],1, 0, ‘L’, true);
      if($i == 1)
      $this->Cell(45, 7, $cabecera[$i],1, 0, ‘L’, true);
      if($i == 2)
      $this->Cell(45, 7, $cabecera[$i],1, 0, ‘L’, true);
      if($i == 3)
      $this->Cell(25, 7, $cabecera[$i],1, 0, ‘L’, true);
      if($i == 4)
      $this->Cell(60, 7, $cabecera[$i],1, 0, ‘L’, true);
      if($i == 5)
      $this->Cell(25, 7, $cabecera[$i],1, 0, ‘L’, true);
      if($i == 6)
      $this->Cell(22, 7, $cabecera[$i],1, 0, ‘L’, true);
      }

      Y esto en tu método datos (también de PDF.php)

      foreach ($datos as $columna){
      $this->CellFitSpace(30,7,utf8_decode($columna[‘estid’]),1,0,’L’, $bandera );//CellFitSpace
      $this->CellFitSpace(45,7,utf8_decode($columna[‘estape’]),1,0,’L’, $bandera );
      $this->CellFitSpace(45,7,utf8_decode($columna[‘estnom’]),1,0,’L’, $bandera );
      $this->CellFitSpace(25,7,utf8_decode($columna[‘esttel’]),1,0,’L’, $bandera );
      $this->CellFitSpace(60,7,utf8_decode($columna[‘estema’]),1,0,’L’, $bandera );
      $this->CellFitSpace(25,7,utf8_decode($columna[‘estequ’]),1,0,’L’, $bandera );
      $this->CellFitSpace(22,7,utf8_decode($columna[‘estsem’]),1,0,’L’, $bandera );
      }

      Ojalá te sirva, si tienes dudas, envíame a ringhugos@gmail.com un screenShot de cómo te sale la tabla y así ayudarte mejor, saludos.

      Gracias por leer el blog 😀

       
      • huguidugui

        14 junio, 2014 at 11:51

        $this->Cell(111,25,’Aqui va texto pero lo dejas en blanco’,0,0,’C’, $this->Image(‘images/logoIzquierda.png’,20,12,20));

        Este es un fragmento de otro tuto que tengo en el blog de generar un documento.

        Si te refieres a poner una imagen en una celda, este es el código necesario. Obviamente si no quieres el texto, ese argumento de Cell lo dejas en blanco, es decir, solo dejas las comillas simples »

        Saludos, espero hacer ayudado, sino, envíame tu duda más detallada a ringhugos@gmail.com y cuando lleguemos a lo que necesitas, lo publicamos.

         
  3. ricarock espinosa

    11 julio, 2014 at 13:51

    amigo huguidugui muchas gracias por tu tutos me sirven mucho al este esta muy bien pero lo quiero hacer que en lugar que sea horizontal que sea vertical, como podria hacerlo espero que me ayudes u.u.

     
    • huguidugui

      11 julio, 2014 at 14:29

      Bueno para hacer eso, debes «jugar» con el parámetro ln (que es el segundo cero) cambia por 1 o 2 y mira los resultados, más información en la sección Manual de fpdf.org
      >CellFitSpace(40,7, utf8_decode($fila),0, 0 , ‘C’);

      Y además tienes que hacer modificaciones en tus setXY porque se alinearán en otra posición.

      Gracia por tu comentario 😀

       
  4. ricarock espinosa

    12 julio, 2014 at 08:32

    okok ya pud amigo, ahora si la ultima, solo quiero que muestre un registro en la base de datos no todos los registros como puedo hacerlo????

     
    • huguidugui

      12 julio, 2014 at 10:24

      Eso lo tengo en este otro post http://wp.me/p24DD5-gM Checa en el archivo myDBC.php el método que se llama seleccionar_persona($matricuala).

      Para solo traer un registro, debes hacer que tu query mandé a llamar el registro específico con la sentencia WHERE y listo.

      Gracias por leer el blog 😀

       
  5. Saul Reyes

    25 julio, 2014 at 18:42

    Ola amigo esta muy bueno tu aporte yo acabo de iniciarme en php y esto de fpdf es nuevo y entiendo la mitad del codigo y cuando agrego la 4 fila me sale sin el estilo me podrias ayudar

     
    • huguidugui

      26 julio, 2014 at 07:04

      Claro, envíame un mail con el código que llevas hecho y si puedes un screeshot (pantallazo) para ver qué pasa y con gusto te ayudo.

      Saludos

       
  6. ros

    5 agosto, 2014 at 13:02

    y como seria cuando necesitamos pasarle parametros a la consulta tipo:
    function seleccionar_datos($fecha1,$fecha2,$edad){

    // le paso los parametros a mi consulta, estos parametros los extraigo de mi interfaz de entrada de datos

    $sql=’select nombre from datos where fecha between $fecha1 and $fecha2 and edad=$edad’;
    }

     
    • huguidugui

      5 agosto, 2014 at 14:10

      El $sql debería ir con dobles comillas ya que usarás variables dentro de ésta: Algo a sí como:
      $sql=»select nombre from datos where fecha between ‘$fecha1’ and ‘$fecha2’ and edad=’$edad'»;

      Gracias por leer el blog 🙂

       
  7. richter12

    25 septiembre, 2014 at 19:37

    Que tal, oye intenté poner 5 filas pero las últimas dos no las pinta de colores, como podría hacerle para que se vean todas con estilos?.

     
    • huguidugui

      25 septiembre, 2014 at 20:17

      Hola, muchas gracias por leer los tutos 😀

      Me podrías enviar tu código a ringhugos@gmail.com y con mucho gusto te ayudo (si puedes adjuntar una imagen, mejor)

      Saludos

       
  8. richter12

    25 septiembre, 2014 at 21:52

    Muchas gracias huguidugui, ya te mandé el correo.

     
  9. Anyx Rbd

    28 octubre, 2014 at 10:35

    hola amigo disulpa soy nueva en php y la vdd es que tu codigo me ayudo muchisimo pero el detalle es como podria hacerle para que la hoja sea vertical?

     
    • huguidugui

      29 octubre, 2014 at 07:09

      Hola Anyx, para eso que mencionas se usa el método addPage() en la que le pasas como primer parámetro la letra ‘P’ (Portrait o vertical) o ‘L’ (Landscape u horizontal). Puedes ver la página oficial de fpdf.org y ver la sección de Manual para más info y ejemplos 😉 (está en español)

      Saludos y gracias por leer el blog 😀

       
  10. Cristian

    28 octubre, 2014 at 20:00

    Hola esta muy bueno el codigo, como puedo hacer, ademas de limitar las celdas, que si el texto es muy largo haga un salto de linea dentro de la misma celda. Saludos

     
    • huguidugui

      29 octubre, 2014 at 07:12

      Hola Cristian 😀 eso que mencionas lo tengo en el tintero, haré un ejemplo sobre este problema. Pero te recomiendo ver la sección de Scripts del sitio oficial de fpdf.org, ahí viene scripts para hacer determinadas funcionalidades.

      En cuanto tenga listo ese ejemplo te envío un mail 😉 (Y) Saludos

       
  11. Anyx Rbd

    30 octubre, 2014 at 12:35

    perdon otra duda oye como puedes haces un reporte dinamico con multicell y que te quede la tabla pareja respetanto el ancho mas grande para todas

     
  12. r3is3rsf

    12 noviembre, 2014 at 16:59

    hola amigo, he seguido la guía que aquí expones para imprimir un reporte, puse los 4 archivos php en una carpeta con fpdf dentro claro esta y únicamente cambie mi contraseña de base de datos, la tabla de donde saco los datos y la consulta sql. Pero no me imprime los resultados.

    Me extrae el numero de registros que hay, pero no me los muestra los resultados

    Solo tengo 7 registros en esa tabla, y muestra esa cantidad de filas, pero sin los resultados. Espero que me puedas ayudar 🙂

     
    • huguidugui

      13 noviembre, 2014 at 19:29

      Con mucho gusto te puedo ayudar, envíame en un zip lo que tienes hecho para correrlo en mi localhost y ver que es lo que está fallando.
      ringhugos@gmail.com

      Saludos Roberto y gracias por leer el blog 😀

       
  13. Adolfo

    12 diciembre, 2014 at 08:05

    hola, muy bueno el codigo me sirvio de mucho, genere un reporte que es un listado, lo que no me esta sacando es la cabecera para cada pagina. Utilizo la misma estructura de tu ejemplo no se si podrias poner otro ejemplo o extender el mismo . gracias, Saludos

     
    • huguidugui

      12 diciembre, 2014 at 21:21

      Mmmm está raro eso que mencionas, ya que el método Header se llama automáticamente desde la clase fpdf. Si quieres, puedes enviarme tu código para ver que es lo que está pasando y con mucho gusto te ayudo. ringhugos@gmail.com

      Saludos y gracias por leer el blog 😀

       
  14. cesar

    21 enero, 2015 at 11:40

    hola, disculpa estoy aprendiendo a desarrollar paginas web y tu informacion me parecio inportante por lo cual lo quise implementar agregando una columna mas pero al momento de generar la tabla la ultima columna no me da los bordes ni el color de fondo de las celdas me podrias ayudar por favor, gracias

     
    • huguidugui

      21 enero, 2015 at 16:35

      Con mucho gusto te puedo ayudar, envíame tu código a ringhugos@gmail.com y te ayudo a ver qué pasa.
      Saludos y muchas gracias por leer el blog

       
  15. miguelC

    15 May, 2015 at 07:40

    buenas, excelente tutos este y los demas…
    bueno en este ejemplo hiciste con una sola tabla, pero mi duda y lo que me gustaria hacer es con mas tablas (aqui solo registros) yo quisiera hacer algo como: empleado, cargo, departamento, etc.
    porfa si me podrias seria genial, gracias, sigue adelante con este blog… 😀

     
    • huguidugui

      15 May, 2015 at 20:20

      Para hacer diferentes tablas lo que requieres es hacer diferentes consultas y mandar llamar las funciones cada vez que las requieras.
      Para los campos que necesitas, tengo otros ejemplo parecido aquí pdfdesdephp.huguidugui.com con la librería html2pdf o con fpdf el solo es necesario modificar lo que tengo ahora.
      Si quieres que te ayude me puedes enviar tu código a ringhugos@gmail.com y con gusto te ayudo.
      Saludos y gracias por leer el blog (Y)

       
  16. Jose Reyes Gtz

    15 junio, 2015 at 17:58

    disculpa ya lo corregi !!! mil gracias por el aporte. saludos

     
    • huguidugui

      18 junio, 2015 at 18:14

      Por lo que veo del error que pusiste, al parecer fue un error de rutas o nombres de archivos diferentes.
      ME alegra que los hayas resuelto, saludos y gracias por leer el blog 😀

       
  17. Brian

    21 julio, 2015 at 11:02

    hola muy buen tutorial!
    solo que necesito que me adapte la celda al texto, y en algunas el texto sobrepasa la celda por lo que se repite sobre la misma linea.

     
    • huguidugui

      22 julio, 2015 at 21:44

      Hola Brian, envíame un mail a ringhugos@gmail.com y te mando el código necesario para este pequeño issue. Aunque una buena alternativa es usar HTML2PDF ya que es mucho es más fácil y estos issues no los tienes con esta librería.

      Saludos y gracias ṕor seguir el blog 🙂

       
  18. lorena

    2 octubre, 2015 at 09:16

    Saludos, tengo un reporte dinamico que se visualiza bien cuando los datos son <= a 18 si se incrementan los datos generando mas filas se distorsiona como puedo resolver esto.gracias

     
    • huguidugui

      6 diciembre, 2015 at 18:42

      Si quieres puedes enviarme tu código y te puedo ayudar mejor. Envíame un mail a ringhugos@gmail.com y con mucho gusto te ayudo

      Saludos y gracias por seguir el blog

       
  19. Levi

    28 noviembre, 2015 at 11:42

    hola gracias por el tutorial muy bien explicado, tengo una duda como puedo hacerle para que a partir de la segunda pagina me muestre otra cabecera, es que en la primer hoja muestro una imagen y un titulo y en la segunda quiero que solo se muestre los campos de la tabla

     
    • huguidugui

      6 diciembre, 2015 at 18:26

      Bueno, lo que pasa es que esta función hace precisamente eso de tener que escribir el mismo código en todas las hojas pero si lo que hacer… Mmmm lo que se me ocurre y eso si sabes de antemano cuántas hojas habrá, es condicionar que en una hoja sea un código para la cabecera y otro para otra hoja (y con todas las hojas que sean)
      Obvio sin la función Header.

      Gracias por seguir el blog, si tienes dudas específicas manda un mail a ringhugos@gmail.com

       
  20. lrz

    27 enero, 2017 at 14:32

    Hola Gracias por tu Blog, me ha sido de gran ayuda , ya casi termino este proyecto que estoy realizando , solo una pequeña duda, dentro de PDF.php en la funcion datosHorizontal, empieza con esto $this->SetXY(10,85);
    yo lo modifique porque le agregue un encabezado y es algo largo
    pero tambien le agregue un pie de pagina , habra alguna forma de indicarle , cuando deje de imprimir los registros y pasarse a la siguiente hoja ?, ya que se me encima con mi pie de pagina , espero me puedas ayudar ,Gracias

     
    • huguidugui

      30 enero, 2017 at 09:13

      Hola, el pie de página lo hiciste con la función Footer()?

      Claro que te puedo ayudar, envíame a ringhugos@gmail.com tus capturas de pantalla y parte del código donde lo estás generando y con gusto te ayudo.

      Saludos, me alegra que te haya servido.

       

Replica a huguidugui Cancelar la respuesta