Bonjour
j'ai une base de données qui est encodé en utf8 et j'ai besoin de générer des pdf
Pour faire les pdf j'utilise fpdf avec un scripte récupéré sur le site fpdf que j'ai adapté à mon cas.
Mon soucis c'est que les caractères accentué ne s'affichent pas correctement.
Je sais que je dois utiliser utf8_decode mais je n'arrive pas à l'intégrer dans le code.... j'ai à peu près tout essayé
Ci dessous le code php pour collecter les données et la fonction qui réalise le tableau et y intègre les données
Si une âme charitable pouvait m'aider un peu ce serait sympa.
Merci
Le code php pour collecter les données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 $pdf->Table($link,"select M.id_membre, M.id_class, M.id_civilite1, M.id_civilite2, M.id_civilite3, M.nom AS nom_membre, M.prenom, M.id_qualite1, M.id_qualite2, M.id_qualite3, M.adresse, M.code_p, M.ville, M.telephone, M.portable, M.email, M.cotisation, CONCAT(M.nom, ' ', M.prenom) AS membre, C.id_class, C.class, T.id_civilite1, T.civilite1, TT.id_civilite2, TT.civilite2, TTT.id_civilite3, TTT.civilite3, Q.id_qualite1, Q.qualite1, QQ.id_qualite2, QQ.qualite2, QQQ.id_qualite3, QQQ.qualite3, R.id, R.id_membre, R.id_manif_liste, R.oui_non, ML.id, ML.nom_base, ML.nom AS nom_manif FROM membre M left JOIN tbl_class C ON M.id_class=C.id_class left JOIN tbl_civilite1 T ON M.id_civilite1=T.id_civilite1 left JOIN tbl_civilite2 TT ON M.id_civilite2=TT.id_civilite2 left JOIN tbl_civilite3 TTT ON M.id_civilite3=TTT.id_civilite3 left JOIN tbl_qualite1 Q ON M.id_qualite1=Q.id_qualite1 left JOIN tbl_qualite2 QQ ON M.id_qualite2=QQ.id_qualite2 left JOIN tbl_qualite3 QQQ ON M.id_qualite3=QQQ.id_qualite3 left JOIN manif_liste_reponse R ON M.id_membre = R.id_membre left JOIN manif_liste ML ON R.id_manif_liste = ML.id WHERE $filtre order by ML.nom, M.nom, R.oui_non desc" ,$prop );
La fonction qui réalise le tableau et mise en page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 function Table($link, $query, $prop=array()) { // Execute query $res=mysqli_query($link,$query) or die('Error: '.mysqli_error($link)."<br>Query: $query"); // Ajouter toutes les colonnes si aucune n'a été spécifiée if(count($this->aCols)==0) { $nb=mysqli_num_fields($res); for($i=0;$i<$nb;$i++) $this->AddCol(); } // Récupérer les noms de colonnes quand non spécifié foreach($this->aCols as $i=>$col) { if($col['c']=='') { if(is_string($col['f'])) $this->aCols[$i]['c']=ucfirst($col['f']); else $this->aCols[$i]['c']=ucfirst(mysqli_fetch_field_direct($res,$col['f'])->name); } } // Propriétées if(!isset($prop['width'])) $prop['width']=0; if($prop['width']==0) $prop['width']=$this->w-$this->lMargin-$this->rMargin; if(!isset($prop['align'])) $prop['align']='C'; if(!isset($prop['padding'])) $prop['padding']=$this->cMargin; $cMargin=$this->cMargin; $this->cMargin=$prop['padding']; if(!isset($prop['HeaderColor'])) $prop['HeaderColor']=array(); $this->HeaderColor=$prop['HeaderColor']; if(!isset($prop['color1'])) $prop['color1']=array(); if(!isset($prop['color2'])) $prop['color2']=array(); $this->RowColors=array($prop['color1'],$prop['color2']); // Calculer les largeurs de colonne $this->CalcWidths($prop['width'],$prop['align']); // Imprime entête $this->TableHeader(); // Imprime les rangées $this->SetFont('Arial','',11); $this->ColorIndex=0; $this->ProcessingTable=true; // le tableau while($row=mysqli_fetch_array($res)) $this->Row($row); }







Répondre avec citation
Partager