Tutoriel

Exemple minimal

Voici pour commencer l'exemple classique :

<?php
require('fpdf.php');
$pdf=new FPDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World !');
$pdf->Output();
?>

Le constructeur FPDF est utilisé ici avec les valeurs par défaut. Les pages sont en portrait et l'unité de mesure est le millimètre. On aurait pu l'indiquer explicitement par :

$pdf=new FPDF('P','mm');

Il est possible de passer en paysage (L) et d'utiliser d'autres unités de mesure (pt, cm, in).

Open() commence le document PDF. Il n'y a pour l'instant encore aucune page, c'est pourquoi il faut en ajouter une avec AddPage(). L'origine est en haut à gauche et la position courante est placée par défaut à 1 cm des bords; on peut changer ces marges par SetMargins().

Avant d'imprimer du texte, il est impératif de définir la police, sinon le document serait invalide. On choisit de l'Arial gras en taille 16 :

$pdf->SetFont('Arial','B',16);

On aurait pu spécifier de l'italique avec I ou une police sans style avec une chaîne vide. A noter que la taille de la police est ici donnée en points, pas en millimètres (ou autre unité choisie); c'est la seule exception. Les autres polices disponibles sont Times, Courier, Symbol et ZapfDingbats.

On imprime ensuite une cellule grâce à Cell(). Une cellule est une zone rectangulaire, éventuellement encadrée, qui contient du texte. Elle est imprimée à la position courante. On spécifie ses dimensions, le texte (centré ou aligné), si elle doit être entourée, et si la position courante doit être déplacée à droite ou doit au contraire aller à la ligne suivante. On aurait encadré le texte comme ceci :

$pdf->Cell(40,10,'Hello World !',1);

Si on veut ajouter une nouvelle cellule à droite avec du texte centré et retourner à la ligne, on fait :

$pdf->Cell(60,10,'Powered by FPDF.',0,1,'C');

Remarque : le retour à la ligne peut également s'effectuer grâce à la méthode Ln(). Cette dernière permet de préciser en plus la hauteur du saut de ligne.

Enfin, le document est terminé et envoyé au navigateur grâce à Output(). On aurait pu le sauvegarder dans un fichier en passant le nom souhaité.

Exemple plus élaboré

Voici un exemple de deux pages avec en-tête, pied de page et logo :

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

class PDF extends FPDF
{
//Constructeur (obligatoire pour PHP3)
function PDF()
{
    $this->FPDF();
}

//En-tête
function Header()
{
    //Logo
    $this->Image("logo_pb.png",10,8,33);
    //Police Arial gras 15
    $this->SetFont('Arial','B',15);
    //Décalage à droite
    $this->Cell(80);
    //Titre
    $this->Cell(30,10,'Titre');
    //Saut de ligne
    $this->Ln(20);
}

//Pied de page
function Footer()
{
    //Police Arial italique 8
    $this->SetFont('Arial','I',8);
    //Positionnement à 1,5 cm du bas
    $this->SetY(-15);
    //Décalage à droite
    $this->Cell(80);
    //Numéro de page
    $this->Cell(30,10,'Page '.$this->PageNo());
}
}

//Instanciation de la classe dérivée
$pdf=new PDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
for($i=1;$i<=40;$i++)
    $pdf->Cell(50,10,'Impression de la ligne numéro '.$i,0,1);
$pdf->Output();
?>

Cet exemple exploite les méthode Header() et Footer() pour traiter les en-têtes et pieds de page. Leur implémentation dans la classe FPDF est vide, aussi devez-vous dériver la classe et les redéfinir. Le logo est imprimé grâce à la méthode Image() en précisant le coin supérieur gauche et la largeur.

Une autre fonctionnalité est ici utilisée : le saut de page automatique. Lorsqu'une cellule descend trop bas (à 2 centimètres du bas de la page par défaut), un saut de page est effectué et la police est restaurée. Bien que l'en-tête et le pied de page spécifient leur propre police (Arial), le corps de la page continue en Times. Le seuil de déclenchement du saut de page se règle avec SetAutoPageBreak().

A noter l'utilisation de la méthode SetY() qui permet de se positionner de manière absolue dans la page, à partir du haut ou du bas.

Note : à partir de la version 1.2, il peut être nécessaire de définir la constante FPDF_FONTPATH au début des scripts. Lisez bien le fichier install.txt fourni avec l'archive.