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] header pour fpdf


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut [FPDF] header pour fpdf
    Bonjour
    Boilà, j'ai créussi à faire un document pdf à partir de ma base de données. Tout marche bien, voici le code :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php require_once('Connections/perso.php');
    require('fpdf/fpdf.php');
     
    mysql_select_db($database_perso, $perso);
    $query = "SELECT * FROM joueurs";
     
    $resultat=mysql_query($query);
     
    $pdf=new FPDF('P','cm','A4');
    $pdf->AddPage();
     
    //Titres des colonnes
    $pdf->SetFont('Arial','B',14);
    $pdf->SetFillColor(96,96,96);
    $pdf->SetTextColor(255,255,255);
    $header=array('Nom','Prénom','Indice');
     
    $pdf->SetXY(3,3);
    for($i=0;$i<sizeof($header);$i++)
    $pdf->cell(5,1,$header[$i],1,0,'C',1);
    // Affichage des données
    $pdf->SetFillColor(0xdd,0xdd,0xdd);
    $pdf->SetTextColor(0,0,0);
    $pdf->SetFont('Arial','',10);
    $pdf->SetXY(3,$pdf->GetY()+1);
    $fond=0;
    while($row=mysql_fetch_array($resultat))
    {
    $pdf->cell(5,0.7,$row['NOM'],1,0,'C',$fond);
    $pdf->cell(5,0.7,$row['PRENOM'],1,0,'C',$fond);
    $pdf->cell(5,0.7,$row['IV_CLASSEMENT'],1,0,'C',$fond);
     
    $pdf->SetXY(3,$pdf->GetY()+0.7);
    $fond=!$fond;
    }
    $pdf->output();
    ?>
     
    <?php
    mysql_free_result($query);
    ?>
    Je voudrais maintenant ajouter un header et un footer. J'ai vu des idées sur le site de fpdf mais ça ne fonctionne pas. Je pense qu'il y a un pb lorsque l'on crée un document selon que l'on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new FPDF('P','cm','A4');
    ou bien
    Est-ce que quelqu'un aurait une idée ?
    Merci

  2. #2
    Membre émérite
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut, pourrais-tu préciser ce qui ne fonctionne pas ?? Normalement, tu peux surcharger les méthodes Header et Footer initialement définies dans la classe de base FPDF.

    Peux tu préciser ce qui ne fonctionne pas et y joindre le code complet ?

    ++
    JC

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Merci
    J'ai tout mis le code
    Ce que je cherchais, c'était d'ajouter ce que j'avais trouvé dans les tutod de fpdf (instanciation de classe) mais je n'arrive pas à l'utiliser correctement.
    A l'origine, le codé était donc
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?php require_once('Connections/perso.php');
    require('fpdf/fpdf.php');
    class PDF extends FPDF
    {
    //En-tête
    function Header()
    {
        //Logo
        $this->Image('logo_pb.png',10,8,33);
        //Police Arial gras 15
        $this->SetFont('Arial','B',15);
        //Décalage à droite
        $this->Cell(80);
        //Titre
        $this->Cell(30,10,'Titre',1,0,'C');
        //Saut de ligne
        $this->Ln(20);
    }
     
    //Pied de page
    function Footer()
    {
        //Positionnement à 1,5 cm du bas
        $this->SetY(-15);
        //Police Arial italique 8
        $this->SetFont('Arial','I',8);
        //Numéro de page
        $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    }
    }
    mysql_select_db($database_perso, $perso);
    $query = "SELECT * FROM joueurs";
     
    $resultat=mysql_query($query);
     
    $pdf=new FPDF('P','cm','A4');
    $pdf->AliasNbPages();
    $pdf->AddPage();
     
    //Titres des colonnes
    $pdf->SetFont('Arial','B',14);
    $pdf->SetFillColor(96,96,96);
    $pdf->SetTextColor(255,255,255);
    $header=array('Nom','Prénom','Indice');
     
    $pdf->SetXY(3,3);
    for($i=0;$i<sizeof($header);$i++)
    $pdf->cell(5,1,$header[$i],1,0,'C',1);
    // Affichage des données
    $pdf->SetFillColor(0xdd,0xdd,0xdd);
    $pdf->SetTextColor(0,0,0);
    $pdf->SetFont('Arial','',10);
    $pdf->SetXY(3,$pdf->GetY()+1);
    $fond=0;
    while($row=mysql_fetch_array($resultat))
    {
    $pdf->cell(5,0.7,$row['NOM'],1,0,'C',$fond);
    $pdf->cell(5,0.7,$row['PRENOM'],1,0,'C',$fond);
    $pdf->cell(5,0.7,$row['IV_CLASSEMENT'],1,0,'C',$fond);
     
    $pdf->SetXY(3,$pdf->GetY()+0.7);
    $fond=!$fond;
    }
     
    $pdf->output();
    ?>
     
    <?php
    mysql_free_result($query);
    ?>
    Le tableau s'affiche mais rien de plus

  4. #4
    Membre émérite
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut, c normal

    En fait, tu créé une classe PDF en y ajoutant les header et footer mais tu utilises la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new FPDF('P','cm','A4');
    Tu aurais du mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new PDF('P','cm','A4');
    Tu prendras ainsi en compte tes surcharges de méthodes header et footer...

    ++
    JC

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Effectivement, j'avais fait la modif mais je n'ai toujours pas d'entête ni de pied de page et comme j'y connais peu de choses ....

  6. #6
    Membre émérite
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Ok, tu peux joindre tout ton code ? Tu as changé new FPDF en new PDF ?


    ++
    JC

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    excuse-moi mais je ne peux y accéder car je suis au boulot
    C'est exactement le code de mon message au-dessus en ayant mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new PDF('P','cm','A4');
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new FPDF('P','cm','A4');

  8. #8
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Bonjour,

    Je vois que tu passes des paramètres au constructeur de ta classe PDF et que tu forces donc la taille par défaut à des centimètres et non pas des millimètres. Une piste serait donc que ton Header n'apparait pas sur ta page (qui ne fait que 29,7cm de haut).
    Je ne sais pas du tout si c'est ca, mais j'ai testé sur mon pdf en passant la taille en centimètre j'ai juste mon logo en milieu de page du coup et rien d'autre!

    Tiens nous au courant,

    Koopajah

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Je pense que le problème est lié aux mesures car lorsque je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new PDF('P','cm','A4');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf=new PDF('P','mm','A4');
    Cette fois le header est visible mais le reste est illisible

  10. #10
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Bon, au moins tu as trouvé d'où venait le probleme.
    Si tu tiens à garder les mesures en cm il faut que tu modifies les coordonnées que tu utilises dans ton header et dans ton footer, mais raisonner en mm est peut etre plus pratique et permet de placer plus finement tes cellules.

    C'est normal que le reste devienne illisible. Tu as préparé ton tableau pour des mesures en centimetre, donc chaque ligne fait par exemple 2 cm de haut et 8 de large.
    Maintenant tu as tout passé en mm et donc tes lignes sont de 2mm de haut et 8mm de large!

    Il faut donc soit modifier les coordonnées du header et du footer pour etre en millimètres soit modifier celle des pages à proprement parler pour être en centimetres

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Merci de ta patience koopajah
    Tout marche en calant bien les lignes
    Je joins le code complet pour ceux que ça intéresserait
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php require_once('Connections/perso.php'); 
    require('fpdf/fpdf.php'); 
    class PDF extends FPDF 
    {
     
    //En-tête 
    function Header() 
    {  
    //Logo  
    $this->Image('images/comité br.jpg',10,8,33); 
    //Police Arial gras 15  
    $this->SetFont('Arial','B',15);
     //Décalage à droite  
     $this->Cell(80); 
    //Titre  
    $this->Cell(50,10,'Titre',1,0,'C');
    //Saut de ligne  
    $this->Ln(20);
     }   
    //Pied de page 
    function Footer() 
    {  
    //Positionnement à 1,5 cm du bas  
    $this->SetY(-15); 
    //Police Arial italique 8  
    $this->SetFont('Arial','I',8); 
    //Numéro de page  
    $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    } 
    } 
    mysql_select_db($database_perso, $perso); 
    $query = "SELECT * FROM joueurs";   
    $resultat=mysql_query($query);  
     
    $pdf=new PDF('P','mm','A4'); 
    $pdf->AliasNbPages(); 
    $pdf->AddPage();   
    //Titres des colonnes 
    $pdf->SetFont('Arial','B',14); 
    $pdf->SetFillColor(96,96,96); 
    $pdf->SetTextColor(255,255,255); 
    $header=array('Nom','Prénom','Indice');   
    $pdf->SetXY(30,30); 
    for($i=0; $i<sizeof($header); $i++) 
    $pdf->cell(50,10,$header[$i],1,0,'C',1); 
    // Affichage des données 
    $pdf->SetFillColor(0xdd,0xdd,0xdd); 
    $pdf->SetTextColor(0,0,0); 
    $pdf->SetFont('Arial','',10); 
    $pdf->SetXY(30,$pdf->GetY()+10); 
    $fond=0; 
    while($row=mysql_fetch_array($resultat)) 
    { 
    $pdf->cell(50,7,$row['NOM'],1,0,'C',$fond); 
    $pdf->cell(50,7,$row['PRENOM'],1,0,'C',$fond); 
    $pdf->cell(50,7,$row['IV_CLASSEMENT'],1,0,'C',$fond);   
    $pdf->SetXY(30,$pdf->GetY()+7); 
    $fond=!$fond; 
    }   
    $pdf->output();
     ?>   
    <?php mysql_free_result($query); ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] Pb pour ouvrir des PDF depuis les dossiers Web
    Par Diggi dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/12/2007, 08h51
  2. [FPDF] Pb pour ouvrir un fichier pdf sous IE ?
    Par wormseric dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/11/2006, 11h15
  3. [FPDF] Footer() et Header() de 'fpdf.php'
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 03/05/2006, 12h21
  4. Réponses: 3
    Dernier message: 11/04/2006, 10h00
  5. utilisation du header pour ouvrir des .doc
    Par krolineeee dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2006, 14h57

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