fpdf en codeigniter

FPDF en Codeigniter (header y footer)

Hugui Dugui

Continuando con la entrada anterior donde creamos una hoja en blanco usando la librería FPDF desde Codeigniter, en esta entrada se va a hacer el código necesario para crear el Header y Footer en cada hoja generada.

Para esta entrada vamos a crear en la vista que ya había un nuevo botón que al clickarlo, generará un PDF el cual tendrá en cada página el Header y el Footer.

La vista tiene lo siguiente:

<div class="container">
   <div class="row">
      <div class="col-md-12 text-center" >
         <h1>
            Generación de PDF con la librería FPDF <br> en Codeigniter
         </h1>
         <br>
         <a class="btn btn-success" href="<?php echo base_url();?>inicio/hojaEnBlanco" target="_blank">
         Generar hoja en blanco
         </a>
         <br><br>
         <a class="btn btn-success" href="<?php echo base_url();?>inicio/paginaHeaderFooter" target="_blank">
         Generar PDF con Header y Footer
         </a>
      </div>
   </div>
</div>

Y se verá así:


Ahora creamos un nuevo método que se llamará paginaHeaderFooter(). Aquí el código completo del controlador:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

require_once APPPATH.'third_party/fpdf/fpdf.php';

class Inicio extends CI_Controller {

    public function __construct(){
        parent::__construct();
    }


    public function index()
    {
        $datos['titulo'] = 'Generar PDF con librería FPDF desde Codeigniter';
        $this->load->view('headfoot/header', $datos);
        $this->load->view('body/principal');
        $this->load->view('headfoot/footer');
    }

    public function paginaHeaderFooter()
    {
        
        $pdf = new PDF();
        $pdf->AddPage('P','A4',0);
        $pdf->SetFont('Arial','B',12);
        // Se crean números para generar algunas páginas en el documento
        for ($i=0; $i < 200; $i++) { 
            $pdf->Cell(0,10,utf8_decode('Repitiendo un número para ver header y footer ') . $i ,0,1,'C');
            $pdf->Ln();
        }
        $pdf->Output('paginaEnBlanco.pdf' , 'I' );
    }          
}

/*
* Con este código se crea el HEADER y FOOTER 
*/
class PDF extends FPDF
{
    function Header()
    {
        $this->SetFont('Arial','B',15);
        $this->Cell(0,10,utf8_decode('Este header se muestra en cada página generada'),1,0,'C');
        $this->Ln(20);
    }
    
    function Footer()
    {
        $this->SetY(-15);
        $this->SetFont('Arial','I',8);
        $this->Cell(0,10,utf8_decode('Este footer se muestra en cada página generada'),1,0,'C');
        $this->Cell(-15,10,utf8_decode('Página ') . $this->PageNo(),0,0,'C');
    }
}

Acá el resultado en un gif:




No olvides que puedes descargar el zip de esta entrada con el proyecto completo listo para usar en tu localhost FPDF desde Codeigniter. Espero que me quieras compartir tus avances y/o dudas en el grupo de facebook del curso.

Si quieres puedes escribirme a ringhugos@gmail.com o al whatsapp para cualquier comentario o duda que tengas sobre este tutorial.