IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[FPDF] Comme remettre une cellule au coin supérieur gauche de la page suivante ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut [FPDF] Comme remettre une cellule au coin supérieur gauche de la page suivante ?
    Bonjour,

    dans mon code php, j'affiche 100 cellules verticalement. Donc voici le code source, très simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    define("WIDTH_CELL", 50);	
    define("HEIGHT_CELL", 50);
     
    for($i = 0; $i < 100; $i++)
    {
    		//Le 20 ci-dessous est là juste pour que la 1ère cellule comme à y = 20 :
    		$y = 20+$i*HEIGHT_CELL;
     
                    //On définit la position x et y de la cellule à afficher :
    		$pdf->SetXY(10, $y);
     
                    //On affiche la cellule. Le $pdf->y ci-dessous sert juste à connaître la position y de la cellule affichée :
    		$pdf->Cell(WIDTH_CELL, HEIGHT_CELL, "Texte ".$pdf->y, 1, 0);
    }
    Le problème est que quand une cellule dépasse la 1ère page, il s'affiche bien sur la 2ème page, mais la cellule suivante s'affiche sur la 3ème page au lieu de s'afficher à la suite de la cellule de la 2ème page. Voici télécharger le fichier pdf ici : http://www.filedropper.com/file_69
    => donc comme faire pour résoudre ce problème ?

    C'est vrai que j'aurais pu utiliser le paramètre ln de Cell(), mais là j'utilise setXY() car les coordonnées X et Y des cellules doivent être personnalisables.

    Merci d'avance, cordialement.

  2. #2
    Membre régulier
    Homme Profil pro
    Etudiant CNAM (DIE20)
    Inscrit en
    Janvier 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant CNAM (DIE20)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 151
    Points : 97
    Points
    97
    Par défaut
    Bonjour,
    Ce comportement est normal, car ton $y continue à être incrémenté après le changement de page, donc il continue à dépasser le bas de page.
    En effet, quand FPDF détecte que la cellule qu'il faut écrire va dépasser la page courante, il la rebascule au début de la page suivante (donc sans tenir compte de ta valeur de $y).
    Il faudrait que tu réinitialise ton $y lors du changement de page.
    Pour régler cela je n'ai pas de solution toute faite, mais 2 approches me paraissent possibles :
    - récupérer la position du curseur après l'écriture d'une cellule, et déclencher manuellement le saut de page + réinitialiser $y quand tu approche de la fin de la page
    - détecter un changement de page automatique en comparant le numéro de page actuel à celui de l'itération précédente, et si le numéro de page à changé, tu réinitialises $y en fonction de la position courante de ton curseur.

    Pour récupérer l'ordonnée du curseur : $pdf->GetY()
    Pour récupérer le numéro de page : $pdf->PageNo()
    Pour sauter une page : $pdf->AddPage()

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/09/2023, 19h32
  2. Lien hypertexte avec comme adresse une cellule
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/01/2009, 12h37
  3. afficher le coin supérieur gauche d'une feuille à l'activation
    Par Ragmaxone dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/07/2008, 13h51
  4. [FPDF] Hauteur d'une cellule
    Par mamiberkof dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/08/2007, 21h28
  5. Réponses: 2
    Dernier message: 27/06/2007, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo