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 "Afficher correctement le signe « € » (euro) avec la librairie FPDF" 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 !
Charlie Stram,
Développeur web freelance
