Tutorial para crear archivos PDF con cabecera y pie de página desde PHP con ayuda de la librería FPDF.
Requisitos:
- Servidor Web (Apache)
- PHP (5.2.0 o superior)
- Liberia FPDF. Descargar
- MySQL (opcional)
Estructura de carpetas:
Dentro de la carpeta images va la imagen logo_pb.png la cual utilizaremos como logotipo para colocarlo en la cabecera del PDF.
Primero creamos una clase llamada PDF que herede de la clase FPDF y para agregar un encabezado y pie de página en un archivo PDF y esto se repliquen en todas hojas utilizamos las funciones header y footer.
<?php require('fpdf/fpdf.php'); //Agregamos la librería //Creamos clase PDF que herada de FPDF class PDF extends FPDF { // Cabecera de página function Header() { // Logo $this->Image('images/logo_pb.png',10,8,33); // Arial bold 15 $this->SetFont('Arial','B',15); // Movernos a la derecha $this->Cell(80); // Título $this->Cell(30,10,'Marko',1,0,'C'); // Salto de línea $this->Ln(20); } // Pie de página function Footer() { // Posición: a 1,5 cm del final $this->SetY(-15); // Arial italic 8 $this->SetFont('Arial','I',8); // Número de página $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); } } // Creación del objeto de la clase heredada $pdf = new PDF(); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->SetFont('Times','',12); for($i=1;$i<=400;$i++) $pdf->Cell(0,10,'Imprimiendo línea número '.$i,0,1); $pdf->Output(); ?>
El resultado es el siguiente:
En este ejemplo el texto aparecer sobre la imagen del logotipo para arreglar este detalle podemos modificar la funciona header, agregamos 30 saltos de linea en vez de 20 o bajamos el tamaño de la imagen de 33 a 25:
// Logo $this->Image('images/logo_pb.png',10,8,25); O // Salto de línea $this->Ln(30);
También vemos que el texto aparece con caracteres extraños ya que el texto que tiene acentos esta codificado, para esto utilizamos la función utf8_decode():
$pdf->Cell(0,10,utf8_decode('Imprimiendo línea número ').$i,0,1);
El resultado con las modificaciones es el siguiente: