Document PDF FPDF

Fermé
jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017 - 27 nov. 2017 à 10:39
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 1 déc. 2017 à 00:41
Bonjour,

Je vous remercie d'avance :),

J'ai un problème d'accent, et voudrait savoir comment y remédier, j'ai déjà vue pas mal de forum a ce sujet mais rien n'a fonctionner
$this->Cell(0,0,"L'agent des services vétérinaires soussigné certifie que les denrées désignées ci-dessous sont consignées, en l'attente d'informations complémentaires:");





A voir également:

5 réponses

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
27 nov. 2017 à 10:58
accent ou guillemet ?
0
jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017
27 nov. 2017 à 11:00
Les accents, j'ai pas de pb pour les guillemets
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
27 nov. 2017 à 16:45
remplace les ' par \'
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208 > Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019
27 nov. 2017 à 16:45
Oups les accents !!!?
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié le 27 nov. 2017 à 17:05
Moi je n'ai pas eu de problème. tu utilises quoi comme constructeur ?
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->MultiCell(40, 0, $date);


Tu as un truc du genre dans ta function cell ...
$txt2 = str_replace(')','\\)', str_replace('(','\\(',str_replace('\\','\\\\',$txt)));
$s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2);
0
jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017 > Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019
Modifié le 30 nov. 2017 à 20:25
require('tfpdf/tfpdf.php'); 

$pdf=new FPDF();
$pdf->AddPage();
$pdf->Head();
$pdf->Body();

J'utilise le même constructeur que toi à part que je crée directement mes "paragraphes" dans des fonctions
et qui je l'ai affiche à la fin comme pour:
$pdf->Body();




Pour la fonction Cell, oui j'ai un truc comme ça
$txt2='('.str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt))).')';
$s .= sprintf('BT %.2F %.2F Td %s Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2);


En voyant ça je me suis dis que peut être j'avais une trop vieille version mais j'ai essayer avec la dernière de FPDF (la 1.81) cela ne fonctionne pas non plus
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
29 nov. 2017 à 00:06
Bonsoir,

Je pense qu'il s'agit peut-être d'un problème d'encodage ou de décodage selon que le serveur ou le générateur de la phrase est ANSI ou UTF-8.
Essaye l'une des deux solutions :

$msg = "L'agent des services vétérinaires soussigné certifie que les denrées désignées ci-dessous sont consignées, en l'attente d'informations complémentaires:";
$this->Cell(0,0,utf8_decode($msg)); // si la chaîne est encodée UTF-8
// ou
$this->Cell(0,0,utf_encode($msg)); // si elle est encodée ISO-8859-1

0
jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017
30 nov. 2017 à 20:35
Avec
->Write(5,utf8_decode("test des accents éàê°îÏ"));

ça fonctionne très bien mais n'y a t'il pas un autre moyen plus radical que d'ajouter utf8_decode devant chaque chaine de caractère
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
29 nov. 2017 à 08:24
0
jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017
30 nov. 2017 à 20:40
header( 'content-type: text/html; charset=utf-8' );


comme il est écrit dans l'explication ceci ne fonctionne pas
Mais merci quand même
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017
30 nov. 2017 à 22:20
Et tes fichiers sont en quoi ?
Faut tout lire
0
jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017
30 nov. 2017 à 22:29
En PHP mais le pb c'est que je crée un objet FDPF du coup c'est des fonctions prédéfinies assez complexe dans un autre fichier php et à part faire encode_utf8() a chaque chaîne de caractères je n'ai rien trouver d'autre
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > jowjon67 Messages postés 6 Date d'inscription lundi 27 novembre 2017 Statut Membre Dernière intervention 30 novembre 2017
30 nov. 2017 à 22:36
Non... je n'ai pas demandé avec quel langage de programmation tu les avais coder...ça je l’avais vu ....
je te parle de l'ENCODAGE du fichier... chapitre 1 du lien que je t'ai donné. (tes DEUX fichiers en fait )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
1 déc. 2017 à 00:41
Bonsoir,
je crois qu'il faut prendre en compte deux choses :
- le générateur des textes
- les scripts qui créent le PDF

le générateur des textes : les textes à mettre dans le PDF proviennent soit d'un formulaire, soit d'une base de données.

Formulaires.
- Soit il y a plusieurs formulaires (celui qui prend les données et celui qui les traite), soit il n'y en a qu'un :
<form method="post"
name="saisie"
action="traitement.php">
(ici, il y a celui qui prend les données (saisie.php) et celui qui traite celles-ci (traitement.php)
- soit il n'y en n'a qu'un, récursif :
<form method="post"
name="saisie"
action="<?php echo $_SERVER["PHP_SELF"]; ?>">
(ici, client.php qui effectue la saisie ET qui traite celle-ci)

Dans les deux cas les scripts peuvent, lors de l'écriture, être encodés ANSI (ISO-8859-1) ou être encodés UTF-8.
A) Si lors de l'écriture de ces scripts, ils sont encodés UTF-8, la saisie sera, elle aussi encodée UTF-8, il faudra donc les décoder pour la production du PDF et donc utiliser utf8_decode($message)
B) Si ces scripts sont, lors de l'écriture, encodées ANSI, les caractères saisis et traités seront eux-aussi ANSI et l'utilisation de cette fonction ne sera pas nécessaire.

Base de données;
Si les données proviennent d'une base de données et que celle-ci est conçue pour enregistrer des chaines UTF-8 (interclassement: utf8_%_ci), les chaines seront enregistrées et restituées en UTF-8 et l'utilisation de utf8_decode($message) sera aussi, nécessaire).
Si la base de données est créée avec encodage ANSI (ex: latin1_general_ci), l'utilisation de la fonction utf8_decode($message) sera inutile.

Pour résumer:
- BDD UTF-8 : utf8_decode() nécessaire
- Scripts de formulaire et traitement UTF-8 : utf8_decode() nécessaire
- BDD ou formulaire et traitement ANSI : utf8_decode() inutile

A titre d'exemple:
J'ai une base de données généalogique de démo (interclassement: latin1_general_ci) + des scripts PHP rédigés en ANSI. La production du PDF du livre de famille ne pose pas de problème avec la classe myPDF.
Voir en http://www.fauque.fr/demogen/

NB:
- la classe myPDF utilisée n'est qu'une extension de la classe tFPDF
- En bas de la page l'icone "Acrobat" génère le livre de famille
- En dernière page, l'heure de création de ce livre prouve qu'il n'est pas statique mais créé à la volée par l'interrogation de la BDD.
- Désolé si le texte est en anglais, c'est pour une plus large diffusion mais certains prénoms (André) possèdent des accents traduits correctement.
- IMPORTANT: Je te conseille d'utiliser l'éditeur Notepad++ qui te permet de choisir l'encodage (ANSI, UTF-8 sans BOM, UTF-8, UTF-16BE, UTF-16LE). Tu peux facilement le trouver en téléchargement (il est gratuit). Mais plutôt que la version classique, je te conseille la version portable en https://portableapps.com/apps (Development) que tu peux installer et utiliser partout sur une clef USB. Pour être tranquille, sur une clef neuve installe la plateforme et tous les logiciels dont tu as besoin (dont Notepadd++) afin d'avoir ton bureau avec toi sur clef et pouvoir l'utiliser partout (enfin sur des PC, pas des Mac ni Linux).

Est-ce que cela répond à ta question ?
0