Bonjour,
J'ai 2 soucis liés à la fabrication de fichiers PDF avec FPDF. J'ai cherché et n'ai pas trouvé.
Pourtant je suis persuadé que mes soucis ne sont pas incontournables.
Voici donc.
CONTEXTE
J'ai une table Mysql qui comporte plusieurs enregistrements (univers). Chaque univers a un nom et une partie descriptive.
Je souhaite créer un fichier PDF que l'utilisateur pourra ouvrir ou enregistrer selon son souhait.Le fichier est simple puisqu'il comporte
une entête (header), un corps de texte et un pied de page (footer). Dans l'entête est mentionné le nom de l'univers.
Je souhaite pouvoir enchainer la création des fichiers sachant qu'il a un fichier par univers.
STRUCTURE DE MES SCRIPTS
1er script : (fichier PHP n°1)
1 l'utilisateur sélectionne les univers pour lesquels il veut un fichier. La sélection est récupérée dans le tableau $ref_univers.
2 lecture du tableau et pour chaque valeur du tableau via un foreach ($ref_univers) , appel à une fonction existante (description_univers_impression($ref_univers)) dans un autre fichier qui est bien sur inclus (include) en début de script.
2ème script: la fonction description_univers_impression($ref_univers); (fichier PHP n°2)
1 récupération du nom de l'univers ($nom_univers) à partir de sa référence ($ref_univers) via une requête SQL.
2 définition du header (qui n'est pas décrite dans FPDF) par une extension de la classe PDF de FPDF . Dans cette définition il y a intégration du nom de l'univers après avoir déclaré en tête du header qu'il s'agit d'une variable GLOBAL
3 - fabrication du fichier + enregistrement temporaire du fichier sur disque
4 - proposition à l'utilisateur d'ouvrir ou d'enregistrer le fichier avec $pdf->Output($fichier);
5 - destruction du fichier sur disque unlink($fichier)
MES 2 SOUCIS
1 - Le header ne reprend pas le nom de l'univers qui lui est passé via la variable:
??? Cela est-il du au fait que l'extension de la classe FPDF pour déclarer le header est (elle même une fonction) incluse dans ma fonction appelée (script 2).
2 - la boucle foreach du script n°1 n'est appelée qu'une seule fois même lorsqu'il y a plusieurs valeurs à lire dans le tableau . Il n'y a pas de retour sur le script 1 après appel de la fonction du script n°2.
??? Cela est-il du à une 'interruption' liée au point 4 du script n°2 ? Pourtant l'utilisateur ouvre le fichier qui est parfaitement correct sauf le header mais lorsqu'il le referme, il n'y a pas retour au script n°1.
Je précise que tout fonctionne bien sauf le header et le retour au script n°1. La valeur nom_univers existe bien juste avant le passage à la fonction header.
Merci pour vos conseils au débutant FPDF que je suis.
Partager