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

Langage PHP Discussion :

[TCPDF] Problème de Saut de page


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut [TCPDF] Problème de Saut de page
    Bonjour à tous,

    Je suis en train de coder un programme PHP permettant d'afficher le résultat des requêtes SQL en PDF.

    J'utilise "MultiCell" pour afficher les données.

    J'utilise la librairie TCPDF et tout fonctionne bien, enfin presque.

    Le problème est le saut de page. En effet, lorsqu'une cellule arrive au pied de page, elle s'étend sur l'autre page. (ci-joint photo)
    Nom : bugOC.PNG
Affichages : 651
Taille : 3,9 Ko

    Ce que je voudrai, c'est bien évidemment "juste" sauter la page et reprendre en haut de la page suivante.

    J'ai essayé de récupérer la valeur de Y et de faire une condition de façon à ce que quand la position de Y arrive en bas de page (vers 210), je saute la page. Quand je fais ça, tout est juste décalé d'une page entière et le problème se produit encore.

    J'ai aussi essayé de faire des sauts de lignes, sans succès. :/

    Si quelqu'un aurait déjà rencontré cette situation qu'il se manifeste

    Merci d'avance!

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    c'est bien de mettre l'image du rendu mais un peu de code ça serait bien mieux.
    de ce que je lis, tu pourrais utiliser nobr="true" dans ton tableau .... mais à voir avec ce que tu fait.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse!

    Je n'utilise pas des tableaux à proprement parler, voici un exemple de création de cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $pdf->SetXY($x1, $y1); 
    $pdf->MultiCell($sizeX, $sizeY, "Label", 1, "L", 0); //Je crée ma cellule
    $y1=$y1+40; //je décale la position Y plus bas pour l'autre cellule
    Quand la position de Y arrive vers le pied de page, il s'étend sur le haut de page de la page suivante.

    Je ne pense pas que "nobr" fonctionne ici car ce n'est pas du HTML mais plutôt une gestion de cellule

    Merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par romain292 Voir le message
    J'ai essayé de récupérer la valeur de Y et de faire une condition de façon à ce que quand la position de Y arrive en bas de page (vers 210), je saute la page. Quand je fais ça, tout est juste décalé d'une page entière et le problème se produit encore.
    je pense qu'il faut continuer sur cette voie.
    après avoir fait le saut de page, modifiez la position Y en tenant compte de la marge du haut. cela fera continuer le contenu en haut de la nouvelle page.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Le problème c'est que le saut de page "manuel" avec "AddPage()" décale tout d'une page, un cellule positionnée à x=30;y=100 se retrouvera sur la page 2 avec les mêmes coordonnés, ce que je ne veux surtout pas.

    Pour revenir à la condition, quoi que je mette comme valeur, la "1ère" cellule à changer de page se retrouvera à califourchon sur les 2 pages. (comme sur la photo).
    Le truc c'est qu'après cette première cellule qui décale tout, mon affichage reprend bien, jusqu'au prochain saut de page et tout se décale au fur et à mesure...

    Alors j'ai essayé de bidouiller en mettant comme première cellule une cellule invisible sans contour mais les cellules suivantes sont quand même décalées.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    il faudrait que vous calculez la hauteur de la cellule avant de l'afficher.
    comme cela, si l'espace restant ne suffit pas, vous faite le saut de page avant l'appel de la méthode "MultiCell"

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'ai peut être trouvé un début de solution:
    Je teste la condition sur la position du Y , si on arrive bien en bas de page, je fais un "AddPage", puis je mets à jour la position de la cellule en soustrayant la hauteur de la page à Y:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pdf->SetXY($x1, $y1-200);
    Avec cette bidouille, j'arrive en haut de page, ce que je veux!

    Je pense pourtant qu'il y a une solution plus simple car là je vais devoir mettre à jour toutes les positions des cellules

    Je vais aussi me pencher sur ton idée Mathieu, merci

    Affaire à suivre!

Discussions similaires

  1. Utilisation de "format" problème de saut de page
    Par danyII dans le forum Langage
    Réponses: 1
    Dernier message: 31/08/2016, 15h09
  2. [2.2.2][birt viewer] Problème de saut de page
    Par HelpmeMM dans le forum BIRT
    Réponses: 51
    Dernier message: 02/07/2008, 10h39
  3. Problème de saut de page dans un sous-état
    Par nicolas2603 dans le forum IHM
    Réponses: 7
    Dernier message: 14/05/2008, 09h35
  4. Problème de saut de pages
    Par ouabe3 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/12/2006, 19h06
  5. Problème de saut de page Sous Rapport
    Par ramoucho17 dans le forum iReport
    Réponses: 4
    Dernier message: 21/09/2006, 09h06

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