I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 1) Classe FPDF I- ANALYSE DU BESOIN / Plan FPDF est une classe PHP qui permet de générer des fichiers PDF via PHP (ce qui évite d’utiliser une librairie). L’avantage de FPDF est le fait que c’est libre et que nous pouvons le modifier comme nous en avons besoin. Un choix du format des pages et de leurs marges Gestion simple des en-têtes et pieds de pages Possibilité d’automatiser le saut de page automatique Mise en place d’un saut de ligne automatiquement et de la justification Possibilité d’inclure des images Mise en forme avec des couleurs Possibilité de mettre en place des liens Gestions des polices d’écriture
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 1) Classe FPDF I- ANALYSE DU BESOIN / Plan Mise en place de FPDF Télécharger l’archive (la plus récente) sur le site de FPDF www.fpdf.org Décompresser l’archive et placer son contenu dans le dossier sur notre serveur local que nous utiliserons lors du développement notre 1er PDF.
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 2) Mise en place d’un Hello World I- ANALYSE DU BESOIN / Plan Fichier tuto1.php < ?php // Inclure fdpf require('fpdf.php'); // Création d’un nouveau PDF $pdf = new FPDF(); // Création d’une page $pdf->AddPage(); // Définition de la police $pdf->SetFont(‘Arial’,,13); // Mise en place du texte $pdf->Cell(40 ,10, ‘Hello World ’); // Sortie du PDF $pdf->Output(); ?> Le constructeur est utilisé ici avec les valeurs par défaut : les pages sont en portrait A4 et l'unité de mesure est le millimètre. AddPage() : permet d'ajouter une page 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(). SetFont() permet de définir la police Cell() imprime une cellule rectangulaire contenant une ligne de texte Output() le document est envoyé au navigateur
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 4) En-tête, pied de page, saut de page et image I- ANALYSE DU BESOIN / Plan Fichier tuto2.php On exploite les méthodes Header() et Footer() pour traiter les en-têtes et pieds de page. Leur implémentation dans la classe FPDF est vide, aussi doit-on 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. La hauteur est calculée automatiquement afin de respecter la proportion de l'image. Ln : Effectue un saut de ligne, le paramètre correspond à l'amplitude du saut. Le numéro de page courant est retourné par la méthode PageNo() Utilisation de la méthode SetY() qui permet de se positionner de manière absolue dans la page, à partir du haut ou du bas.
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 5) Retour du texte à la ligne et couleurs I- ANALYSE DU BESOIN / Plan Fichier tuto3.php La méthode GetStringWidth() permet de déterminer la longueur d'une chaîne dans la police courante, ce qui est utilisé ici pour calculer la largeur du cadre entourant le titre. On défini les couleurs avec SetDrawColor(), SetFillColor() et SetTextColor() SetLineWidth() fixe l'épaisseur des traits MultiCell() permet d'imprimer les paragraphes. A chaque fois qu'une ligne arrive à l'extrémité droite de la cellule ou qu'un caractère de retour-chariot est rencontré, un saut est effectué et une nouvelle cellule automatiquement créée sous la précédente. Le texte est justifié par défaut. Deux propriétés du document sont renseignées : le titre SetTitle() et l'auteur SetAuthor().
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 5) Les tableaux I- ANALYSE DU BESOIN / Plan Fichier tuto4.php Un tableau n'étant qu'un ensemble de cellules, il est naturel de les construire à partir de ces dernières. Le premier est réalisé de la manière la plus élémentaire qui soit : de simples cellules encadrées, toutes de la même taille et alignées à gauche. Dans le deuxième chaque colonne a sa propre largeur, les titres sont centrés et les nombres cadrés à droite. De plus, les traits horizontaux ont été enlevés (paramètre border de la méthode Cell()) Reste le problème du trait horizontal final pour refermer le tableau : ajouter le trait une fois la boucle terminée. Le troisième tableau est semblable au deuxième mais utilise des couleurs. Il suffit pour cela de préciser les couleurs de fond, de texte et de trait souhaitées. L'alternance de couleur pour les lignes est obtenue en utilisant des cellules à fond alternativement coloré et transparent.
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 6) Ajout de polices I- ANALYSE DU BESOIN / Plan Génération du fichier de définition de police La première étape consiste à générer un fichier PHP contenant toutes les informations dont FPDF a besoin. Pour cela, un script est fourni dans le répertoire makefont de l'archive : makefont.php. Il contient la fonction suivante : MakeFont (string fontfile, string enc) Fontfile : Chemin du fichier .ttf, .otf ou .pfb. Enc : Nom de l'encodage à utiliser. Par défaut : cp1252 (Europe de l'ouest) Après avoir appelé la fonction un fichier .php est créé, avec le même nom que celui du fichier de police. Exemple : Vous devez ensuite copier les fichiers générés dans le répertoire des polices. < ?php require('makefont/makefont.php'); MakeFont('C:\\Windows\\Fonts\\MAGNETOB.TTF','cp1252'); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des documents pdf en PHP 6) Ajout de polices I- ANALYSE DU BESOIN / Plan Déclaration de la police dans le script La seconde étape est la plus simple. Il suffit d'appeler la méthode AddFont() : <?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddFont('MAGNETOB','','MAGNETOB.php'); $pdf->AddPage(); $pdf->SetFont('MAGNETOB','',20); $pdf->Write(10,'Changez de police avec FPDF !'); $pdf->Output(); ?>