Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > FPDF
FPDF Forum d'entraide pour la bibliothèque FPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels FPDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/07/2007, 11h17   #1
Nouveau Membre du Club
 
Homme Florent LAVILLE
Inscription : mars 2005
Messages : 92
Détails du profil
Informations personnelles :
Nom : Homme Florent LAVILLE
Localisation : France, Haute Savoie (Rhône Alpes)

Informations forums :
Inscription : mars 2005
Messages : 92
Points : 26
Points : 26
Envoyer un message via MSN à laville
Par défaut [FPDF] numérotation (personalisée) des pages

Bonjour,

J'utilise la librairie fpdf pour faire des exports pdf (php5, bdd PostgresSQL) mais j'ai un petit soucis de numérotation de page :!


Le problème est que cette librairie ne permet pas, à ma connaissance et après quelques recherches sur le Web, de mettre à la suite plusieurs documents à exporter (par exemple factures) à la suite et leur attribuer une numérotation spécifique (au lieu d'avoir page x/20, plutot avoir pour chaque facture dans ce document page x1/y1 page x2/y2 etc.)

j'utilise la fonction
Citation:
$pdf->AliasNbPages();
pour avoir le nombre de pages totales ainsiq ue la fonction me permettant d'afficher le nombre de pages dans le header :

Citation:
$this->Cell(30, 7,' '.$this->PageNo().'/{nb}',1,1, 'C');
J'ai pu surcharger la fonction header pour avoir ma facture (rien de bien compliqué), mais pour le nombre de pages j'aimerais (si possible) ne pas refaire entièrement la numérotation des pages et utiliser si possible ce qui existe (et le remodeler légèrement par exemple en en faisant un tableau ^^')

pour info, j'envoi l'identifiant de la facture dans le header.

merci d'avance pour ceux qui auraient une petite idée
laville est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2007, 15h24   #2
Nouveau Membre du Club
 
Homme Florent LAVILLE
Inscription : mars 2005
Messages : 92
Détails du profil
Informations personnelles :
Nom : Homme Florent LAVILLE
Localisation : France, Haute Savoie (Rhône Alpes)

Informations forums :
Inscription : mars 2005
Messages : 92
Points : 26
Points : 26
Envoyer un message via MSN à laville
Bon après quelques tests pour voir si je pouvais garder l'existant j'ai plutôt surcharge et cela à l'air de fonctionner.

Je met en partie ma solution :

dans le fichier fpdf (fichier de la librairie) j'ai rajouté les lignes suivantes :
définition de la variable dans la classe fpdf :
Citation:
class FPDF
{
//Private properties
var $page; //current page number
var $pages_doc; // variable permettant de connaitre le numéro de la
//page du document => array(array())
dans la fonction fpdf rajouter l'initialisation de la variable :

Citation:
function FPDF($orientation='P',$unit='mm',$format='A4')
{

$this->pages_doc=array(); //initialisation
Dans la fonction beginpage rajouter :
Citation:
function _beginpage($orientation, $k=null)
{
$this->page++;
$this->pages[$this->page]='';
$this->pages_doc[$k][$this->page]= $this->page - (!is_null($this->pages_doc[$k][$this->page-1])?$this->pages_doc[$k][$this->page-1]:$this->page)+1;
$k : identifiant du document (cet identifiant est envoyé depuis la fonction Addpage => gérer cela)
$this->page : page courante du PDF généré
Ensuite on fait un calcul pour avoir la valeur réelle du numéro de page

Enfin, dans votre header, rajoutez la ligne suivante (ou adaptez là selon vos propres besoins) :
Citation:
$this->Cell(30, 7,' '.$this->pages_doc[$k][$this->page].'/'.count($this->pages_doc[$k]),1,1, 'C');
merci tout de même pour ceux qui ont regardé le topic en espérant pouvoir m'aider (ou autre ^^)
laville est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h10.


 
 
 
 
Partenaires

Hébergement Web