tim4info Posté 27 Novembre 2006 Posté 27 Novembre 2006 Bonjour à tous, voila j'utilise la libraire FPDF pour créer des documents PDF à partir d'une base de données. Jusque là aucun problème. Aujourd'hui, le contenu peut varier d'un document à un autre est présenté un nombre de pages différents. Or, je n'arrive pas à trouver le moyen de récupérer le nombre de pages de mon fichier pdf. J'essaye avec AliasNbPages() mais je n'ai pas bien compris le fonctionnement, bref, si quelqu'un avez une solution à me fournir ?? Merci d'avance ! Tim
Jeromnimo Posté 27 Novembre 2006 Posté 27 Novembre 2006 Bonjour, apparement tu ne peux pas récupérer directement le nombre de pages du documents. Par contre, si tu utilises la chaine {nb} dans une ligne de texte, elle sera remplacée par le nombre de page (je n'ai jamais utilisé la lib, mais je viens de le lire dans la doc) Que veux-tu faire exactement ?
captain_torche Posté 27 Novembre 2006 Posté 27 Novembre 2006 AliasNbPages() n'est pas à appeler dans le document lui-même, mais lors de la génération (une fois que le nombre de pages est connu). Dans le principe, il remplacera une valeur prédéfinie (par défaut, "{nb}"), par le nombre de pages. C'est seulement à la fin de ton code, juste avant l'export, que tu pourras ajouter $pdf->AliasNbPages(); [Edit: bon, ben grillé]
Jeromnimo Posté 27 Novembre 2006 Posté 27 Novembre 2006 Sinon apres un survol rapide des sources, il semblerait que ce soit la variable page de la classe qui contienne le nombre de pages.... donc apres avoir créé un objet fpdf ($objet), la variable $objet->page devrait contenir ce que tu veux... Attention, cette solution n'a rien d'officielle mais elle peut dépaner...
tim4info Posté 27 Novembre 2006 Auteur Posté 27 Novembre 2006 Merci pour votre aide, mais je comprend toujours pas !! avec ce code, pouvez vous m'indiquer comment par exemple je peux afficher le nombre de pages ?? : <?phprequire('fpdf.php');$pdf=new FPDF();$pdf->AddPage();$pdf->SetFont('Arial','B',16);$pdf->Cell(40,10,'Hello World !');$pdf->Output();ici(après le output()) ? $pdf->AliasNbPages();?>
Jeromnimo Posté 27 Novembre 2006 Posté 27 Novembre 2006 Sans avoir testé, je dirais qu'a priori si tu fais echo $pdf->page ca dvrait renvoyer ton nombre de pages....
tim4info Posté 27 Novembre 2006 Auteur Posté 27 Novembre 2006 Ok merci! En fait, ça fonctionne bien mais pas dans mon cas. J'utilise le total de nombre de pages pour l'afficher dans le pied de page (Footer()) $nbpages=$pdf->page; Mon pied de page me renvoie le nombre de pages totales seulement pour la dernière page, les autres sont vides. Logique !
captain_torche Posté 27 Novembre 2006 Posté 27 Novembre 2006 C'est pour ça que tu dois mettre {nb} dans ton footer. Ensuite, avant $pdf->output(), tu fais $pdf->AliasNbPages()
tim4info Posté 28 Novembre 2006 Auteur Posté 28 Novembre 2006 C'est pour ça que tu dois mettre {nb} dans ton footer. A quel endroit dois-je mettre {nb} dans mon footer ? Faut-il les accolades ?? Lorsque j'essaye, j'ai soit un message d'erreur soit nb en texte qui s'affiche et non la valeur qu'il contient...comment faire svp
captain_torche Posté 28 Novembre 2006 Posté 28 Novembre 2006 En toute logique, il faut y mettre les accolades. Es-tu bien sûr de mettre $pdf->AliasNbPages() à la fin de la génération de ton document, AVANT la génération du fichier ? (et as-tu penser à adapter la variable si tu n'as pas utilisé $pdf ?)
tim4info Posté 28 Novembre 2006 Auteur Posté 28 Novembre 2006 (modifié) $pdf->Cell(0,40,"{nb}",0,0); Merci beaucoup ! En utilisant cette méthode, j'arrive à avoir mon nombre de pages ! Impec'. Mais, je me demandai s'il y a possibilité d'utiliser {nb} dans une variable ou une constante ?? En tout cas un grand merci pour votre aide :!: :!: Modifié 28 Novembre 2006 par tim4info
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant