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

Résolu
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -  
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -
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 38484 Date d'inscription   Statut Modérateur Dernière intervention   4 746
 
Faut incrémenter la variable $position_detail
0
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   2
 
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 38484 Date d'inscription   Statut Modérateur Dernière intervention   4 746
 
0
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   2 > jordane45 Messages postés 38484 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci, J'ai reçu à régler le problème d'accent
0
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   2
 
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