Tutorial 2 - Kopfzeilen, Fusszeilen, Seitenumbruch und Grafiken

Beispiel für die Anwendung von Kopfzeilen, Fusszeilen, Seitenumbruch und Grafiken

Vielen Dank für die Übersetzung an:
Tobias Zambelli


Hier ist ein Beispiel über zwei Seiten mit Kopfzeile, Fusszeile und Logo

<?php

require('fpdf.php');

class PDF extends FPDF {
  // Kopfzeile
  function Header()
  {
    // Logo
    $this->Image('logo_pb.png',10,8,33);
    // Arial fett 15
    $this->SetFont('Arial','B',15);
    // nach rechts gehen
    $this->Cell(80);
    // Titel
    $this->Cell(30,10,'Titel',1,0,'C');
    // Zeilenumbruch
    $this->Ln(20);
  }

  // Fusszeile
  function Footer()
  {
    // Position 1,5 cm von unten
    $this->SetY(-15);
    // Arial kursiv 8
    $this->SetFont('Arial','I',8);
    // Seitenzahl
    $this->Cell(0,10,'Seite '.$this->PageNo().'/{nb}',0,0,'C');
  }
}

$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
for($i=1;$i<=40;$i++)
  $pdf->Cell(0,10,'Zeilennummer '.$i,0,1);
$pdf->Output();

?>

Dieses Beispiel verwendet die Header() und Footer() Methoden um Kopf- und Fusszeilen zu erstellen. Sie werden automatisch aufgerufen. Sie existieren schon in der FPDF-Klasse, machen aber nichts. Deshalb müssen wir die Klassen erweitern und überschreiben.

Das Logo wir mit dem Befehl Image() ausgegeben. Man spezifiziert die Position links oben und die Breite. Die Höhe wird automatisch berechnet, damit das Bild seine Proportionen beibehät.

Um die Seitenzahl auszugeben wurde die zellenweite auf Null gesetzt. Dies bewirkt das die Zelle bis zum rechten Rand gehen kann; den Text zu zentrieren ist passend. Die fortlaufende Seitenzahl wird von PageNo() zurückgegeben; die gesamte Anzahl der Seiten erhät man mittels einen speziellen Wert {nb} welcher beim Schliessen des Dokuments gesetzt wird. (sofern man AliasNbPages() ausgeführt hat!).
Man beachte die SetY() Methode, welche es erlaubt eine absolute Position auf einer Seite zu definieren, ausgehend von oben oder unten.

Es wird noch ein interessantes Feature verwendet: der automatische Seitenumbruch. Sobald eine Zelle das Ende einer Seite erreichen würde (standardmäßig 2 zentimeter von unten), wird ein Seitenumbruch eingefügt und die Schriftart wiederhergestellt. Obwohl die Kopf- und Fusszeile ihre eigene Schriftart haben (Arial) fährt der Hauptteil mit Times fort. Dieser Mechanismus der automatischen Wiederherstellung funktioniert auch mit Farben und Linienbreiten. Das Ende, welches den Seitenumbruch auslöst, kann mit SetAutoPageBreak() festgesetzt werden.