Générer un PDF avec FPDF contenant PHP Mysql [Résolu]

Signaler
Messages postés
202
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
19 septembre 2020
-
Messages postés
202
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
19 septembre 2020
-
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

Messages postés
29740
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839
Faut incrémenter la variable $position_detail
Messages postés
202
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
19 septembre 2020

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();


Messages postés
202
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
19 septembre 2020

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?
Messages postés
29740
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839
Messages postés
202
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
19 septembre 2020
>
Messages postés
29740
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

Merci, J'ai reçu à régler le problème d'accent
Messages postés
202
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
19 septembre 2020

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