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

Résolu/Fermé
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - Modifié le 26 juin 2020 à 11:47
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - 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?
A voir également:

3 réponses

jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 703
26 juin 2020 à 14:07
Faut incrémenter la variable $position_detail
0
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
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 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
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 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 703
26 juin 2020 à 16:46
0
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 > jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024
Modifié le 29 juin 2020 à 16:58
Merci, J'ai reçu à régler le problème d'accent
0
modemo2018 Messages postés 226 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
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