Classe PHP : FPDF
Aujourd’hui un client pas chiant une personne m’a demandé d’installer FPDF pour le site de sa société. Et FPDF c’est une classe PHP, développée par Olivier PLATHEY et qui permet de générer des fichiers PDF en pur PHP, c’est-à-dire sans utiliser la librairie PDFlib.
Attention tout de même car la vitesse de génération du document est plus faible qu’avec PDFlib. Cependant, l’écart de performance reste très raisonnable et convient dans la plupart des cas, à moins que vos documents ne soient particulièrement complexes ou lourds.
Pré-requis
- PHP version 4 minimum est obligatoire,
- La fonction zlib doit être présente pour activer la compression.
Installation
- Télécharger la dernière version en date -> ici,
- Décompresser l’archive,
- Créer un répertoire fpdf sur le FTP,
- Uploader dans ce répertoire : le fichier fpdf.php et le répertoire font.
Générer un pdf
Créer un fichier test.php dans le répertoire fpdf et complétez le comme suit :
| …selon la documentation officielle | ….selon la documentation NightAngel |
AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World !');
$pdf->Output();
?>
|
AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World !');
$pdf->Output();
?>
|
Explication de ob_start();
ob_start(); est une fonction qui démarre la temporisation (buffering) de sortie. Tant qu’elle est enclenchée, aucune donnée, hormis les en-têtes, n’est envoyée au navigateur, mais temporairement mise en tampon. Vous aurez plus de détails en consultant cette page. J’ai ajouté cette fonction sinon vous risquez très fortement d’obtenir l’erreur suivante :
FPDF error: Some data has already been output, can’t send PDF file
:petard: Je sais pas qui est le client chiant :gerbi:
Non mais faut ce qu’il faut :shock:
Un mec qui aurait du appeler sa société Lorem ipsum dolor
Le point positif c’est que cet illustre personnage… il tire :W
fin bon fpdf c’est quand même assez classieux comme bignou. D’ailleurs ca me rappelle que je vais te montrer un exemple de facture réalisé avec fpdf avec un joli montant dessus ;-) ( si tu vois ce que je veux dire)
uhm
jdb, je vais chercher mon nouveau chéquier aujourd’hui même si j’arrive à prendre ma douche avant 16H :o Toi t’es un gars comme ça et tout mais I don’t forget ! J’ai même installé un flyspray spécialement pour l’occasion :lol:
Y a plus propre en passant par les ports… http://www.freebsdsoftware.org[...]/fpdf.html
Y’a encore des gens sous PHP3 ?
Y’a même -encore- des gens qui ont Mac OS X sur leur PC :o
J’ai le même problème lorsque je mets mon code dans une fonction appelée; j’ai essayé ta solution mais ca donne un pdf erroné…
Pourrais-tu m’aider plus?
ps : pourtant, quand j’utilise le code brut (pas dans une fonction), le pdf est nickel!
merci, tu m’a beaucoup aidé j’avais FPDF error: Some data has already been output, can’t send PDF file comme erreur! et le petit ob_start() a résolu tout mes problèmes!! MERCIIII
:)
Yop j’ai suivi les instructions à la lettre mais seulement il me met l’erreur suivant : Fatal error: Call to undefined function: addpage() in …
C’est moi où les deux versions proposées (rubrique “Générer un PDF”) sont identiques ?
Et le ob_start(); n’apparait pas dans les exemples montrés.