IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[FPDF] Encodage UTF-8


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut [FPDF] Encodage UTF-8
    Bonjour,

    Mes scripts PHP sont encodés en UTF-8.
    Lorsque je génère mon fichier PDF, mes caractères accentués sont erronés. On a par exemple "A¨" à la place de "è".

    Comment faire pour que PDF comprenne bien le format UTF-8 ou Unicode ?

    Merci d'avance !
    @+

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    salut,

    fpdf ne gère pas l'utf-8.

    pour y remédier il faut utiliser cette classe (qui hérite de fpdf) :
    http://acko.net/node/56

    il faut également corriger un bug pour l'affichage des multicells :
    http://acko.net/blog/ufpdf#comment-225

    ...et ça marche très bien.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Je vais regarder ça et je vous tiens au courant.

    Merci !

  4. #4
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Je viens de tester la classe UFPDF.

    Je n'ai plus le problème d'encodage mais j'ai le problème de décalage...

    J'ai essayé ce qui est dit dans le commentaire, mais je ne trouve aucune ligne avec le code :

    Comment faire ?

  5. #5
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    J'ai trouvé une alternative pour ne pas me casser la tête !

    Je déclare une fonction formate_texte() qui utilise la fonction utf8_decode(). Cela me permet d'éviter le problème !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    c'est vrai qu'il manque quelque chose.

    la ligne à modifier à l'intérieur de la classe fpdf est celle ci :

    elle se trouve dans la méthode MultiCell vers la ligne 765.

    à remplacer par :

    elle se trouve aussi dans la méthode Write(), mais je ne l'ai pas modifié je ne m'en sert pas.

    j'utilise les versions 1.52 et 1.53 de la classe fpdf.

    edit :
    Cela me permet d'éviter le problème !
    pour les caractères latins oui

  7. #7
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Citation Envoyé par tthierry
    edit :
    pour les caractères latins oui
    Comme j'utilise ceux-là, ça m'arrange !

    En tout cas, merci pour ton aide.
    J'ai essayé ta correction mais cela provoque plein d'autres décalages au niveau de mes tableaux (j'utilise phpToPDF).

    Donc je reste avec mon astuce.

    Encore merci !

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    3 ans 1/2 plus tard, mais comme ce message est le premier référencé dans google, j'apporte ma pierre

    j'ai testé ça dans fpdf 1.5.3 et 1.6, en deux petites modifications, on passe en fpdf pour utf8 :

    a) méthode _escape
    ajouter utf8_decode() autour de la variable $s

    b) méthode Cell
    supprimer la création de la variable $txt2
    transformer $txt2 en $this->_escape($txt) dans le sprintf qui suit

    et hop, le tour est joué.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Problème d'encodage d'envoi newsletter
    je selectionne une modèle de message ou je saisi un message et je l'affiche avant de l'envoyer.

    Sur le message affiché, aucun problème de caractères. Par contre dans le mail reçu, c'est le délire, rien ne se passe comme il faut ! dans ma base les champs son interclassement en latin1_swedish_ci et dans les fichier php je testé en utf-8 et ISO-8859-1, rien n'a changé. merci pour votre

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Points : 10
    Points
    10
    Par défaut
    @Ytse

    Viens d'essayer ton astuce sur la 1.5.3
    mais cela ne fonctionne pas,
    dommage

  11. #11
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    L'astuce de ytse a fonctionné pour moi version 1.7 !

    Merci

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 141
    Points : 49
    Points
    49
    Par défaut
    j ai teste avec 1.7 mais ne marché pas les cataractes arabe sont afficher ???
    il y n'a pas une autre solution??
    merci

  13. #13
    Membre actif Avatar de aperrin
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 221
    Points : 272
    Points
    272
    Par défaut
    fpdf fourni tFPDF une implémentation utf-8 que l'on trouve sur http://www.fpdf.org/

    Le lien pour télécharger tFPDF :
    http://www.fpdf.org/fr/script/dl.php?id=92&f=zip

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    708
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 708
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Nouveau déterrage.

    Je suis passé récemment d'ISO à UTF-8.

    Pour les PDF avec fpdf j'ai choisi de reconvertir en ISO avec la fonction PHP iconv ().

    Cela marche correctement mais avec array j'ai parfois des lignes qui se chevauchent :

    $pdf->Row(array(iconv ($text) . ' x ' . $nb['qt'] . ' = ' . number_format ($nb['ht'] * $nb['qt'], 2, ',', ' '));

    $pdf->Row(array($aquit . '.',''));

    Cela semble aléatoire, parfois bon affichage, parfois non.

    Connaissez-vous ce problème ?

    Cela me donne envoie de passer à tFPDF.

    Qu'en pensez-vous ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    @boteha

    Tu sais que c'est un déterrage, mais tu le fais quand même...

    Ouvre ta propre discussion.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    708
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 708
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Pourquoi ne pas rester sur cette discussion qui est non résolue et bien référencée ?

  17. #17
    Invité
    Invité(e)
    Par défaut
    Tu te trompes : elle est marquée "résolue" depuis longtemps.
    Du coup, tu as moins de chance qu'on te réponde.

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    708
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 708
    Points : 133
    Points
    133
    Par défaut
    D'accord, je vais créer la nouvelle discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Encodage UTF-8 dans fichier XML et PHP
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/01/2007, 16h44
  2. Problème d'affichage avec encodage utf-8
    Par t-die dans le forum Zend
    Réponses: 3
    Dernier message: 04/12/2006, 15h55
  3. [C# 2.0] Comment réaliser un encodage UTF-8 ?
    Par StormimOn dans le forum C#
    Réponses: 2
    Dernier message: 18/10/2006, 11h35
  4. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 23h28
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo