# Intestazione, piè di pagina, cambio pagina e immagini

Ecco un esempio di due pagine con intestazione, piè di pagina, e logo:

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

    class PDF extends FPDF
    {
    // Page header
    function Header()
    {
        // Logo
        $this->Image('logo.png',10,6,30);
        // Arial bold 15
        $this->SetFont('Arial','B',15);
        // Move to the right
        $this->Cell(80);
        // Title
        $this->Cell(30,10,'Title',1,0,'C');
        // Line break
        $this->Ln(20);
    }

    // Page footer
    function Footer()
    {
        // Position at 1.5 cm from bottom
        $this->SetY(-15);
        // Arial italic 8
        $this->SetFont('Arial','I',8);
        // Page number
        $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    }
    }

    // Instanciation of inherited class
    $pdf = new PDF();
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->SetFont('Times','',12);
    for($i=1;$i<=40;$i++)
        $pdf->Cell(0,10,'Printing line number '.$i,0,1);
    $pdf->Output();
    ?>

[Demo]

Questo esempio fa uso dei metodi Header() e Footer() per processare le intestazioni e i piè di pagina. Sono richiamati automaticamente. Esistono già nella classe FPDF ma non fanno nulla, quindi dobbiamo estendere la classe e fare un override di questi metodi.
Il logo è stampato con il metodo Image() specificando il suo angolo in alto a sinistra e la sua larghezza. L'altezza è calcolata automaticamente per rispettare le proporzioni dell'immagine.
Per stampare il numero della pagina, un valore null è passato alla larghezza della cella. Significa che la cella dovrebbe estendersi fino al margine destro della pagina; questo è comodo per centrare il testo. Il numero della pagina corrente è ritornato dal metodo PageNo(); ed il numero totale delle pagine è ottenibile attraverso il codice speciale `{nb}` che è sostituito nel testo quando il documento è concluso (a condizione di chiamare prima AliasNbPages()).
Nota che l'uso del metodo SetY() che permette di posizionarsi ad una posizione assoluta nella pagina, parte dall'inizio o dal fondo della pagina.
Qui si utilizza un'altra caratteristica interessante: l'interruzione di pagina automatica. Non appena la cella sorpassa un limite nella pagina (di predefinito sono 2 centimetri dal fondo), si lancia l'interruzione e il font è ripristinato. Sebbene l'intestazione ed il piè di pagina abbiano il loro font (Arial), il corpo continua con Times. Questo meccanismo di ripristino automatico si applica anche ai colori e alla larghezza della linea. Il limite a cui si evoca l'interruzione di pagina può essere impostato con SetAutoPageBreak().