[PHP] problème d'accent avec la classe FPDF

Résolu
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -  
 Doudousco -
Bonjour,

je suis entrain de réaliser une petite application intranet qui va nécessité l'impression des états. j'utilise la classe fpdf la version 1.7.
je rencontre un problème dans la gestion des erreurs.
avant d'envoyé des données ayant des caractère spéciaux dans la base de données, j'appelle la fonction utf8_encode($data), pour encoder les caractères spéciaux.
lors de l'impression avec la classe fdpf, j'utilise utf8_decode($data);
mais ça marche. pourtant quand j'affiche dans une page écrit web, les caractères sont convenablement décodées.
je ne sais plus quoi faire. merci d'avance pour vos réponses.


3 réponses

conseil198 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   13
 
Utilisé:
$this->Cell(100,15,utf8_decode('Liste des véhicules'),0,1,'C');
15
terrysharp
 
Merci
0
Mohamed
 
Merci
0
Monsieur Leek
 
Parfait merci.
0
nsjona2
 
Grand Merci
0
Doudousco
 
Merci pour cette aide qui marche à merveille chez moi
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Salut,
Peux tu nous donner un aperçu de ton code ?
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   23
 
<?php  
/********************** 
 INCLUSION DES FICHIERS 
 ------fpdf.php contenant les fonction pdf() standard 
 ------bibliotheque_inc.php contient les fonctions usuelles et les fonctions de connexion à la bd 
*/ 
include_once("../fpdf17/fpdf.php"); 
include_once("../noyau/bibliotheque_inc.php"); 

/******************************************************************************* 
    CLASSE PDF PERMETTANT D"IMPRIMER DES FICHIER  
    PDF, CETTE CLASSE ETEND LA CLASSE FPDF 
********************************************************************************/ 

class PDF extends  FPDF{ 
 function LoadData(){ 
  $query = "SELECT * FROM membre ORDER BY IDMEMBRE"; 
  $this->SetFont("Times", '', 7); 
  $data = array(); 
  $result = mysql_query($query) or die(mysql_error()); 
  /*** 
   conserver les titres des colonnes de la bd comme etant 
   les titres des colonnes dans le fichier pdf 
   Tableau a une dimension contenant les titres 
  ***/ 
  $header = array(); 
  for($i = 0; $i < mysql_num_fields ($result); $i++)  
    $header[] = mysql_field_name($result, $i); 
  $data[0] = $header; 
  $i = 1; 
  /*** 
   ajouter les donnees renvoyees par la requette 
   a la suite de la variable $data contenant deja les titres 
   $data tableau a deux dimension contenant les titre et les jeux d'enregistrement 
  ***/ 
  while($row = mysql_fetch_row($result)){ 
   foreach($row as $val) 
    $data[$i][] = $val; 
   $i++; 
  } 
  /*** 
   Retourner le jeu d'enregistrement sous forme de tableau 
   Ce tableau d'enregistrement sera utilise par  
   la fonction Basictable($data) pour produire le resultat 
  ***/ 
  return $data; 
 } 
 function BasicTable($data){ 
  foreach($data as $row){ 
   foreach($row as $col){ 
    $this->Cell(20, 5,utf8_decode($col), 1); 
   } 
   $this->Ln(); 
  } 
  $this->Ln(5); 
  $this->Cell(0,5, "Date: Le...........", 0, 1, "R"); 
  $this->Cell(0,5, "Signature........", 0, 1, "R"); 
  $this->Ln(5); 
     // Mention en italique 
     $this->SetFont('','I'); 
     $this->Cell(0,5,"(fin de la liste)"); 
 } 
} 
$pdf = new PDF(); 
$pdf->AliasNbPages; 
$pdf->AddPage(); 
$data = $pdf->LoadData(); 
$pdf->BasicTable($data); 
$pdf->Output(); 
?> 

--
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   23
 
lors de l'enregistrement des membre. le nom, le prenom, etc. tout ce qui concerne un membre et qui doivent etre saisie au clavier sont passer dans la fonction utf8_encode() pendant l'insertion dans la bd. j'ai vérifié dans la bd, les infos y figurent et les caracteres speciaux converti.
faut souligner que sur les page html, ca marche. mais sur le fichier pdf, ca marche pas.
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Ta page est codé en UTF-8?
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   23
 
où devrais-je ajouter UTF-8?c'est une page écrit en php qui imprime. alors faire de l'affichage
echo '<meta  http-equiv="Content-Type" content="text/html; charset=utf-8" />';
avant le l'impression va renvoyer une erreur.
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Essayes de mettre ca :
header('Content-Type: text/html; charset=UTF-8');
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   23
 
cool, ça marché. encore merci pour votre aide
0