Afficher correctement le signe « € » (euro) avec la librairie FPDF
Veillez à ce que tous vos contenus soient encodés en ISO-8859-1 ou windows-1252.
Vos contenus doivent être encodés en ISO-8859-1 ou Windows-1252. Si vos contenus sont en UTF-8, vous devez utiliser la fonction utf8_decode()
:
// Pour une chaine de caractère : $data = utf8_decode($data) ; // Ou pour l'ensemble des valeurs stockées dans un tableau : $header = array('Ref','Designation','Qté','Px unitaire HT','TVA','Px total HT','Montant TVA','Px unitaire TTC','Total TTC') ; $header = array_map("utf8_decode", $header);
Veillez à ne pas utiliser directement le signe « € », mais son code ASCII
Le signe « euro » ne sera pas lu si vous utilisez directement le signe « € ». Vous allez devoir utiliser à la place son code ASCII, en l’occurrence « 128 », soit chr(128)
. Vous pouvez le déclarer comme constante pour l’utiliser plusieurs fois dans votre script.
define('EURO', chr(128)); $prix = '12.36 '.EURO ; $this->Cell(0, 10, $prix, 0, 0, 'R');
Si le signe euro ne s’affiche toujours pas, vous pouvez utiliser la fonction iconv()
afin de convertir toute la chaine dans le jeu de caractère souhaité, en l’occurence windows-1252 :
$prix = iconv('UTF-8', 'windows-1252', $prix); $this->Cell(0, 10, $prix, 0, 0, 'R'); // Ou si vous avez besoin de passer un tableau entier : function for_fpdf($str) { return iconv('UTF-8', 'windows-1252', $str); ; } $datas = array_map("for_fpdf", $array ) ;
Si cet article vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !