FPDF - utilisation de Header
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.
On progresse, on progresse
Bien, bien.
Tout d'abord, effectivement je retiens la solution de fabriquer un seul PDF qui contiendra les descriptions des univers choisis plutôt que de fabriquer un PDF par univers. Au reste, c'est peut être plus pratique pour l'utilisateur.
J'ai donc passé mon tableau ($_POST['variable']) en argument de la fonction.
Mais il me reste toujours 2 problèmes qui subsistent :
1° utilisation de S_SESSION pour passer les valeurs à Header,Footer.
Cela ne fonctionne toujours pas et je ne comprends pas d'autant que les valeurs à passer sont récupérées au sein de la fonction.
2° Output ne fonctionne toujours pas malgré la syntaxe que j'ai vérifiée plusieurs fois en faisant plusieurs essais.
J'en suis à me demander si l'erreur de viendrait pas de FPDF lui même !!! Cela ne me semble pas possible.
Je pense que je vais en rester là pour l'instant car le résultat obtenu est conforme à ce que j'attends mis à part 2 anomalies pas très académiques que j'essaierai de corriger plus tard.
Merci à toi RunCodePhp. Tu as été très sympa. :ccool::ccool: