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

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *