Générer un PDF avec FPDF contenant PHP Mysql

Résolu/Fermé
modemo2018
Messages postés
214
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
30 mars 2021
- Modifié le 26 juin 2020 à 11:47
modemo2018
Messages postés
214
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
30 mars 2021
- 29 juin 2020 à 16:58
Voici une partie de mon code FPDF qui consiste à afficher les données d'une base de données dans un tableau( dans un fichier PDF)

 function EnteteTableauEleves( $position_entete = 70 ) {
        $this->SetDrawColor(183);
        $this->SetFillColor(221);
        $this->SetTextColor(0);
        $this->SetY( $position_entete );
        $this->SetX(10);
        $this->Cell(60,8,'Nom',1,0,'C',1);
        $this->SetX(70);
        $this->Cell(60,8,'Prenom',1,0,'C',1);
        $this->SetX(130);
        $this->Cell(20,8,'#',1,0,'C',1);
    }
}

Voici l'execution de la fonction crée

<?php 
    // On boucle sur le tableau précédent pour afficher les élèves
    $j=1;
    $position_detail = 78;
    foreach( $eleves as $eleve ){
        $pdf->SetY( $position_detail );
        $pdf->SetX(10);
        $pdf->MultiCell(60,8,utf8_decode(' '.$j.''),1,'C');
        $pdf->SetY( $position_detail );
        $pdf->SetX(70);
        $pdf->MultiCell(60,8,utf8_decode(' '.$eleve['nom'].''),1,'C');
        $pdf->SetY($position_detail);
        $pdf->SetX(130);
        $pdf->MultiCell(30,8,' '.$eleve['prenom'].'',1,'C');
         
        $j++;
    }
    $pdf->Output();
}
catch(Exception $e) {
    die('Erreur PDF : '.$e->getMessage());
}
?>

Le fichier PDF affiche bien le tableau, il ya juste un souci sur la manière qu'il affiche les données, voici la capture d'écran



Quelqu'un peut-il dire pourquoi les noms s'en tasse sur une seule ligne aulieu de retour à la ligne au fur et à mesure SVP?
Quel erreur il ya dans ma boucle foreach?

3 réponses

jordane45
Messages postés
35448
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 mai 2022
4 150
26 juin 2020 à 14:07
Faut incrémenter la variable $position_detail
0
modemo2018
Messages postés
214
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
30 mars 2021

Modifié le 26 juin 2020 à 15:16
Grand merci Jordan45, depuis des jours j'etais bloqué là dessus, je l'ai incrementé et ça marché!!

J'ai une liste des données qui doit s'afficher sur le tableau, au cas où l'intégrale des noms puis exigé deux ou trois pages,
est qu'on definissons mon Footer ainsi, l'incrementation des pages pourrait se faire de manière automatique, c'est-à-dire le nombre des pages correspondra au nombre des noms ?

  $pdf->SetFont('Helvetica','',9);
    $pdf->SetTextColor(0);
    $pdf->EnteteTableauEleves();
     
    // On boucle sur le tableau précédent pour afficher les élèves
    $j=1;
 //while($eleves =  $req->fetch()){
    $position_detail = 78;
    foreach( $eleves as $eleve ){
        $pdf->SetY( $position_detail );
        $pdf->SetX(10);
        $pdf->MultiCell(60,8,utf8_decode(' '.$eleve['nom'].''),1,'C');
        $pdf->SetY( $position_detail );
        $pdf->SetX(70);
        $pdf->MultiCell(60,8,utf8_decode(' '.$eleve['prenom'].''),1,'C');
        $pdf->SetY($position_detail);
        $pdf->SetX(130);
        $pdf->MultiCell(20,8,' '.$j.'',1,'C');
         $pdf->Ln();
        $j++;
  $position_detail = $position_detail + 8;

  
    }
 //} 
    $pdf->Output();

$pdf->AddPage();
    $pdf->SetTextColor(0);
    $pdf->AliasNbPages();


0
modemo2018
Messages postés
214
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
30 mars 2021

Modifié le 26 juin 2020 à 15:16
Veuillez m'excusez car je suis debutant avec FPDF, j'ai un souci dans l'affichage des noms
 try {
    // On crée le PDF
    $pdf = new PDF('P','mm','A4');
    // On ajoute une propriété nom_compte
 $pdf->SetFont('Helvetica','',16);
    $pdf->nom_compte = $compte['nom'];
    // On ouvre une page, ce qui lance également la fonction Header de la classe
    $pdf->AddPage();
    $pdf->SetTextColor(0);

 }

Precisement à ce niveau
 $pdf->nom_compte = $compte['nom'];
il affiche avec les caractère spéciaux là où il ya des lettres avec accents, comment faire pour qu'il affiche normalement les lettres?
0
jordane45
Messages postés
35448
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 mai 2022
4 150
26 juin 2020 à 16:46
0
modemo2018
Messages postés
214
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
30 mars 2021
> jordane45
Messages postés
35448
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 mai 2022

Modifié le 29 juin 2020 à 16:58
Merci, J'ai reçu à régler le problème d'accent
0
modemo2018
Messages postés
214
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
30 mars 2021

29 juin 2020 à 10:36
La connexion à ma BDD mysql a été fait selon ce model

try{
  $bdd =new PDO('mysql:host=localhost; 
 dbname=mabdd; charset=utf8', 'user', 'password');
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}


Dans les autres pages de mon projet le problème des caractères accentués ne se pose pas, les données s'affiche sans problème, j'ai aussi le même code dans ma page FPDF et je comprend pas pourquoi il ya ce probleme là bas
0