vendredi 19 décembre 2014

PHP : générer du PDF

La génération de fichiers PDF est un sujet assez récurrent.

Les applications / site WEB ont très souvent besoin de générer de tels fichiers.

Il existe de nombreuses API qui permettent à partir d'une page PHP de générer un fichier PDF.

Celle qui nous intéresse dans cet article est FPDF.

L'intégration de cette API dans votre application est simple : copier le répertoire<FPDF> téléchargé dans votre projet.

En résumé :

  • Initialisation de notre document PDF dans votre page PHP

// nouveau document
$pdf = new FPDF();

// ajouter une page à votre document
$pdf->AddPage();

  • Ajoutons un entête à notre document

// insertion d'une image => attention uniquement des JPEG
$pdf->Image('images/mon_image.jpg',10,10);

// utilisation police Arial en Bold et 10 points de corps
$pdf->SetFont('Arial','B',10);

// on se positionne à partir du top de page : 5 en ordonnée Y => on travaille en ordonnées non en pixels !
$pdf->SetY(5);

// une ligne en format A4 fait 180 mm : on peut ainsi découper la ligne en "cellules" comme sous  EXCEL
// dans cet exemple le titre (corps 13 points) est centré à droite avec une bordure (Left, Top, right)
$pdf->Cell(180,13,"Mon titre","LTR",0,"C");

Nous partons du <Top> du document vers le <Bottom>.

  • Ajoutons le corps du document

...

// insertion d'un saut de ligne : dans notre exemple la taille du saut de ligne est de 4 en ordonnée
$pdf->Ln(4);

// dans cet exemple on affiche deux textes différents sur la même ligne
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,10,"mon texte 1 ",0,0,"C");
$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,10,"mon texte 2",0,0,"C");

$pdf->Ln(5);

....

A noter : nous pouvons soit nous positionner en ordonnée Y (fonction SetY), soit effectuer des sauts de ligne (les sauts de ligne sont toujours effectués à partir de la position Y courante).

Vous pouvez dans votre document ajouter un pied de page sur le même principe.

  • Générer le document PDF

$pdf->Output("mon_doc.pdf",'F');

Le fichier est généré sur votre serveur.

Cette API permet de couvrir la plupart des besoins, même de générer des documents assez complexes.

Le document est vierge, à vous de gérer l'entête, le corps et le pied de page.

Aucun commentaire:

Enregistrer un commentaire