Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > FPDF
FPDF Forum d'entraide pour la bibliothèque FPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels FPDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2010, 18h51   #1
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Par défaut Import fichier texte drôles de caractères

Bonjour à tous,

j'essaye d'intégrer un fichier texte dans mon PDF tel que explique dans le tuto3 du site FPDF.

l'ouverture de mon fichier .txt se fait correctement mais à l'affichage, j'ai des caractères du style :
Citation:
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
{\fonttbl\f0\fnil\fcharset0 Verdana;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww14000\viewh15200\viewkind0
\deftab720
\pard\pardeftab720\sl360\ql\qnatural
J'ai essayé avec utf8_decode mais cela ne change rien.

Quelqu'un aurait-il une idée?

D'avance merci
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 19h28   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonsoir,

as tu du code à nous proposer ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 19h47   #3
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Bonjour Syl2095

Voici une partie de mon code.
Merci pour ton aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
//Chargement des données
function LoadData($file)
	{
    //Lecture des lignes du fichier
    $lines=file($file);
    $data=array();
    foreach($lines as $line)
        $data[]=explode(';',chop($line));
    return $data;
	}
 
//Tableau simple
function BasicTable($header,$data)
	{
    //En-tête
    $this->SetFont('Arial','B',10);    
    $this->SetY(80);
    $this->SetFillColor(229,229,229);   
    foreach($header as $col)
        $this->Cell(24,7,utf8_decode($col),1,0, 'C',1);
    $this->Ln();
    $this->SetY(80);
    //Données
    $this->SetFont('Arial','',8);    
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->Cell(24,7,$col,1, 0, 'R');
        $this->Ln();
    }
	}
//Chargement des données
function LoadData($file)
	{
    //Lecture des lignes du fichier
    $lines=file($file);
    $data=array();
    foreach($lines as $line)
        $data[]=explode(';',chop($line));
    return $data;
	}
 
//Tableau simple
function BasicTable($header,$data)
	{
    //En-tête
    $this->SetFont('Arial','B',10);    
    $this->SetY(80);
    $this->SetFillColor(229,229,229); //Background des titres de colonnes   
    foreach($header as $col)
        $this->Cell(24,7,utf8_decode($col),1,0, 'C',1);
    $this->Ln();
    $this->SetY(80);
    //Données
    $this->SetFont('Arial','',8);    
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->Cell(24,7,$col,1, 0, 'R');
        $this->Ln();
    }
	}
//Chargement des données
$data=$pdf->LoadData($fichier);
$pdf->SetFont('Arial','',8);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
$pdf->AliasNbPages();
/* $pdf->AddPage(); */
$titre='Conditions générales de vente';
$pdf->SetTitle($titre);
$pdf->SetAuthor('Jules Verne');
$pdf->AjouterChapitre (1,'Conditions générales de vente','conditions_fr.txt');
$pdf->Output();
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 19h58   #4
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
tu as mis tout ton code ?

il manque quelques méthodes comme CorpsChapitre($fichier) entre autres.

est ce normal ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 20h02   #5
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
J'ai simplifié le code (il est un peu long).

le revoici, je crois que les principales fonctions y sont à présent

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
 
//Tableau simple
function BasicTable($header,$data)
	{
    //En-tête
    $this->SetFont('Arial','B',10);    
    $this->SetY(80);
    $this->SetFillColor(229,229,229);   
    foreach($header as $col)
        $this->Cell(24,7,utf8_decode($col),1,0, 'C',1);
    $this->Ln();
    $this->SetY(80);
    //Données
    $this->SetFont('Arial','',8);    
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->Cell(24,7,$col,1, 0, 'R');
        $this->Ln();
    }
	}
//Chargement des données
function LoadData($file)
	{
    //Lecture des lignes du fichier
    $lines=file($file);
    $data=array();
    foreach($lines as $line)
        $data[]=explode(';',chop($line));
    return $data;
	}
 
//Tableau simple
function BasicTable($header,$data)
	{
    //En-tête
    $this->SetFont('Arial','B',10);    
    $this->SetY(80);
    $this->SetFillColor(229,229,229); //Background des titres de colonnes   
    foreach($header as $col)
        $this->Cell(24,7,utf8_decode($col),1,0, 'C',1);
    $this->Ln();
    $this->SetY(80);
    //Données
    $this->SetFont('Arial','',8);    
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->Cell(24,7,$col,1, 0, 'R');
        $this->Ln();
    }
	}
 
function TitreChapitre($num,$lib)
	{
    //Arial 12
    $this->SetFont('Arial','',12);
    //Couleur de fond
    $this->SetFillColor(200,220,255);
    //Titre
    $this->Cell(0,6,"Chapitre $num : $lib",0,1,'L',true);
    //Saut de ligne
    $this->Ln(4);
	}
 
function CorpsChapitre($fichier)
	{
    //Lecture du fichier texte
    $f=fopen(utf8_decode($fichier),'r');
    $txt=fread($f,filesize($fichier));
    fclose($f);
    //Times 12
    $this->SetFont('Times','',12);
    //Sortie du texte justifié
    $this->MultiCell(0,5,utf8_decode($txt));
    //Saut de ligne
    $this->Ln();
    //Mention en italique
    $this->SetFont('','I');
    $this->Cell(0,5,utf8_decode('L\'équipe Sealight'));
	}
function AjouterChapitre($num,$titre,$fichier)
	{
    $this->AddPage();
    $this->TitreChapitre($num,$titre);
    $this->CorpsChapitre(utf8_decode($fichier));
	}	
 
//Chargement des données
$data=$pdf->LoadData($fichier);
$pdf->SetFont('Arial','',8);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
$pdf->AliasNbPages();
/* $pdf->AddPage(); */
$titre='Conditions générales de vente';
$pdf->SetTitle($titre);
$pdf->SetAuthor('Jules Verne');
$pdf->AjouterChapitre (1,'Conditions générales de vente','conditions_fr.txt');
$pdf->Output();
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 20h08   #6
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
tu l'instancies où $fichier ?
Code php :
1
2
 
$data=$pdf->LoadData($fichier);
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 21h15   #7
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Heu… il s'y trouve bien
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//Chargement des données
$data=$pdf->LoadData($fichier);
$pdf->SetFont('Arial','',8);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
$pdf->AliasNbPages();
/* $pdf->AddPage(); */
$titre='Conditions générales de vente';
$pdf->SetTitle($titre);
$pdf->SetAuthor('Jules Verne');
$pdf->AjouterChapitre (1,'Conditions générales de vente','conditions_fr.rtf');
$pdf->Output();
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h09   #8
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
Citation:
l'ouverture de mon fichier .txt se fait correctement
Tu nous parles d'un fichier .txt mais tu mets:

Code :
$pdf->AjouterChapitre (1,'Conditions générales de vente','conditions_fr.rtf');
Tu mets un fichier .rtf à la place.

De plus, ta variable $fichier n'envoie rien (même si tu estimes qu'elle est instanciée dans AjouterChapitre, or, elle n'est instanciée que pour cette fonction-là et non pour LoadData qui vient AVANT).

Mon conseil serait donc (si tu veux ton fichier .rft):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
//Chargement des données
$fichier = 'conditions_fr.rtf';
$data=$pdf->LoadData($fichier);
$pdf->SetFont('Arial','',8);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
$pdf->AliasNbPages();
/* $pdf->AddPage(); */
$titre='Conditions générales de vente';
$pdf->SetTitle($titre);
$pdf->SetAuthor('Jules Verne');
$pdf->AjouterChapitre (1,'Conditions générales de vente',$fichier);
$pdf->Output();
__________________

Symfony par une débutante - Elgg - PHP

Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom..
"The cake is lie" - Doug Rattman, Portal
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 10h33   #9
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Bonjour Vicrab,

merci pour ton aide.

En fait j'avais essayé avec un fichier txt et rtf aussi.
J'ai suivis tes conseils. Cela fonction mais les ' sont remplacés par des ? .
As-tu une idée?
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 10h44   #10
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
Est-ce que cela le fait avec le fichier .txt?
__________________

Symfony par une débutante - Elgg - PHP

Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom..
"The cake is lie" - Doug Rattman, Portal
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h19   #11
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Oui c'est pareil avec un .txt
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h29   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par paintbox Voir le message
Bonjour Vicrab,

merci pour ton aide.

En fait j'avais essayé avec un fichier txt et rtf aussi.
J'ai suivis tes conseils. Cela fonction mais les ' sont remplacés par des ? .
As-tu une idée?
c'est pas un ' mais un ‘
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h29   #13
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
Essaye en retirant tes utf8_decode?

A moins que comme dit stealth, ce soit des ' différents de ceux compris habituellement.
__________________

Symfony par une débutante - Elgg - PHP

Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom..
"The cake is lie" - Doug Rattman, Portal
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h34   #14
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Cela ne change rien. C'est encore pire.
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h36   #15
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
Bon, est-ce que tes ' ressemblent à celui que stealth a mis et dont je suis incapable de reproduire la forme ici?
__________________

Symfony par une débutante - Elgg - PHP

Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom..
"The cake is lie" - Doug Rattman, Portal
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h46   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Vicrabb Voir le message
Bon, est-ce que tes ' ressemblent à celui que stealth a mis et dont je suis incapable de reproduire la forme ici?
ca vient de word, et le format word c'est du windows-1452 et pas de l'iso-8859-1
un coup de iconv et se se fait bien
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h47   #17
Membre à l'essai
 
Inscription : mars 2009
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 170
Points : 20
Points : 20
Non ce sont bien des ’ qui sont transformés en ?
paintbox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h48   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par paintbox Voir le message
Non ce sont bien des ’ qui sont transformés en ?
c'est pas les mêmes
et '
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h53   #19
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
Citation:
Envoyé par stealth35 Voir le message
ca vient de word, et le format word c'est du windows-1452 et pas de l'iso-8859-1
un coup de iconv et se se fait bien
En attendant, j'ai compris comment faire `. Il faut que j'appuie deux fois sur alt+ctrl+µ pour le faire apparaître

Je ne connaissais pas iconv par contre. Je me doutais bien qu'il y avait un problème de ' mais j'aurai été incapable de renseigner cette fonction
__________________

Symfony par une débutante - Elgg - PHP

Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom..
"The cake is lie" - Doug Rattman, Portal
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 13h17   #20
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Vicrabb Voir le message
En attendant, j'ai compris comment faire `. Il faut que j'appuie deux fois sur alt+ctrl+µ pour le faire apparaître

Je ne connaissais pas iconv par contre. Je me doutais bien qu'il y avait un problème de ' mais j'aurai été incapable de renseigner cette fonction
ou
Code http://fr.php.net/manual/fr/function.mb-convert-encoding.php :
mb_convert_encoding
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h37.


 
 
 
 
Partenaires

Hébergement Web