Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > EZPDF
EZPDF Forum d'entraide pour la classe EZPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels EZPDF
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 16/03/2007, 14h14   #1
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Par défaut [EZPDF] Problème de boucle

Bonjour,
Tout d'abord je tiens à signaler que j'utilise la classe EZPDF!
Ce que j'aimerais c'est créer un PDF pour mes factures, donc j'ai une boucle qui me prends chaque article qui est à plus de 0(en quantité). J'arrive à l'afficher en PHP mais si j'utilise la classe EZPDF pour qui créer mon même PDF, cela merde!

Il me fais une erreur avec mon tableau (array) et il n'arrive pas à entrer dans la boucle.
Voilà le code, j'utilise également de l'objet PHP.
Fichiers attachés
Type de fichier : php totalsales.php (1,6 Ko, 13 affichages)
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 18h40   #2
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Salut, pour ton erreur avec le tableau "array", tu as oublié la parenthèse fermante...

Ensuite, pourquoi mets tu autant de "<php ... ?>" ?? Un seul suffit...

++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 09h07   #3
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Merci pour la réponse, mais elle est là la parenthèse fermante! Je remets le ficheir et j'ai mis un commentaire pour situé où elle est...

Maintenant je l'ai peut-être pas mis au mauvais endroit. J'ai oublié de mettre le message d'erreur:

Citation:
Parse error: syntax error, unexpected ';', expecting ')' in D:\wamp\www\gucci\totalsales.php on line 22
Voilà, je remets mon fichier, je pense qu'en 3secondes tu(ou qqn d'autres) peut m'aider.

Merci
Fichiers attachés
Type de fichier : php totalsales.php (1,6 Ko, 4 affichages)
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 09h36   #4
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Salut, je ne pense pas que tu puisse construire un tableau de cette façon...

Pour ajouter ou supprimer des éléments d'un tableau, vois ICI

JE ne sais pas si c'est possible de mettre du conditionnel dans un tableau comme tu l'as fait, tu as aussi mis un echo dans le code à l'intérieur du tableau... Ca semble étrange. Pourrais-tu préciser ce que tu veux mettre dans ton tableau avec un exemple de tableau construit final ?

++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 09h52   #5
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
OK!
Alors voilà j'ai fais un affichemment (HTML) de ce que j'aimerais qui s'affiche dans mon PDF (qui ensuite aura en plus une en-tête et un pied de page)!

En fait mon PDF doit avoir:
- Un en-tête
- La liste du jpg
- Un pied de page

La liste du JPG:
Elle contient la liste de tous les produits vendus, classé par famille. Entre chaque famille, je fais un 'sous-total' de la quantité et du prix (c'est les fameux echo dans ma boucle)!

J'espère vraiment que tu as une solution sinon je suis bien dans la M****! Je signale que ça fais depuis jeudi que je cherche...
Images attachées
Type de fichier : jpg report.jpg (50,3 Ko, 8 affichages)
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 12h00   #6
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Quand tu dis la liste du jpeg, c'est que ton fichier attaché est au format jpeg ??? Si c'est le cas, tu peux l'inclure au pdf en tant qu'image...
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 12h02   #7
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Citation:
Envoyé par jc_cornic
Quand tu dis la liste du jpeg, c'est que ton fichier attaché est au format jpeg ??? Si c'est le cas, tu peux l'inclure au pdf en tant qu'image...
Excuse-moi j'ai du mal à m'exprimer!!!
Quand je dis JPG, c'est parce que mon screenshot et en JPG! C'est une page .php où sont les données...

En fait, j'entre dans une boucle qui me sort la liste par famille de tout mes articles qui ont une quantité au dessus de 0. A côté je fais ces calculs de sous-totaux.

Donc est-ce qu'il y a un moyen d'après la page que je t'ai donné et le printscreen de faire qqch..
soit exporter le HTML, soit pouvoir inclure EZPDF dans ma boucle.
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 13h02   #8
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
En voyant ton screenshot, je dirais oui mais peut-etre pas avec ezpdf...

J'ai fait une classe phpToPDF (ca doit ressembler à ezpdf) avec laquelle tu peux générer un document pdf contenant, des tableaux, des images, tu texe, un sommaire, des en-tetes et pieds de pages...

Ton screenshot ressemble à un tableau donc c jouable.

Je t'invite à regarder le tuto que j'ai fait, tu verras que générer un tableau est assez simple...

++
JC

ps: si jamais tu as un soucis de compréhension, n'hésites pas à poster sur le forum et pas en MP stp.
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 13h17   #9
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Ok je vais regarder cela dans 5mn! Je te redonne des nouvelles de toute façon! En tout cas merci pour le temps passé...
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 13h42   #10
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Alors j'ai essayé avec MultiCell mais toujours autant de problème (meme plus). Tu es la 2ème personne qui me dis que c'est pas possible de faire ce que je voudrais faire.
Maintenant j'aurai une question.

Est-ce qu'on peut par une classe 'PDF' faire comme une photo d'une partie de la page HTML???

Exemple, je reprends exactement mon tableau où il y a mes données et je l'inclus dans un PDF
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 14h06   #11
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Ecoute, voici le code permettant de générer un tableau comme sur le screenshot (les 3 premières lignes), je te laisse le soin de faire la conversion avec tes variables.

Voilà comment déclarer le tableau. (après avoir installé phpToPDF)

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
 
<?php
 
include("phpToPDF.php");
 
$PDF=new phpToPDF();
$PDF->AddPage();
$PDF->SetFont('Arial','B',16);
 
 
// Définition des propriétés du tableau.
$proprietesTableau = array(
	'TB_ALIGN' => 'L',
	'L_MARGIN' => 15,
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => '0.3',
	);
 
// Définition des propriétés du header du tableau.	
$proprieteHeader = array(
	'T_COLOR' => array(150,10,10),
	'T_SIZE' => 12,
	'T_FONT' => 'Arial',
	'T_ALIGN' => 'C',
	'V_ALIGN' => 'T',
	'T_TYPE' => 'B',
	'LN_SIZE' => 7,
	'BG_COLOR_COL0' => array(170, 240, 230),
	'BG_COLOR' => array(170, 240, 230),
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => 0.2,
	'BRD_TYPE' => '1',
	'BRD_TYPE_NEW_PAGE' => '',
	);
 
// Contenu du header du tableau. NULL --> pas de header
$contenuHeader = array(
	15, 30, 75, 10, 20,
	NULL, "", "", "", "",
	);
 
// Définition des propriétés du reste du contenu du tableau.	
$proprieteContenu = array(
	'T_COLOR' => array(255, 255, 255),
	'T_SIZE' => 10,
	'T_FONT' => 'Arial',
	'T_ALIGN_COL0' => 'L',
	'T_ALIGN' => 'R',
	'V_ALIGN' => 'M',
	'T_TYPE' => '',
	'LN_SIZE' => 6,
	'BG_COLOR_COL0' => array(0,0,0),
	'BG_COLOR' => array(0,0,0),
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => 0.1,
	'BRD_TYPE' => '1',
	'BRD_TYPE_NEW_PAGE' => '',
	);	
 
// Contenu du tableau.	
$contenuTableau = array(
	"", 1500, "YA0155...", 14, 7704.24,
	"Qty : 14", "Sub: ...", "", "", "",
             "", "The bamboo watch", "YA06...", 1, 818.49 
 );
 
// D'abord le PDF, puis les propriétés globales du tableau. 
// Ensuite, le header du tableau (propriétés et données) puis le contenu (propriétés et données)
$PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
 
$PDF->Output();
 
?>

Ce code va générer un tableau comme sur ton screenshot sauf pour la couleur de fond des cases en rouge...
Si ca t'interesse, tu peux jeter un oeil au code php et y ajouter ta sauce...

je te joint le pdf résultat (je n'ai mis que les 3 premières lignes de ton tableau exemple)

Je l'ai fait en 3 minutes, c'est juste pour te montrer les possibilités de la classe phpToPDF...

++
JC
Fichiers attachés
Type de fichier : pdf exemple.pdf (1,9 Ko, 7 affichages)
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 11h49   #12
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Alors, j'ai toujours des problèmes et vu tes connaissances dans la chose, je te demande encore...

J'ai copié/collé ton code et voilà l'erreur que ça me donne:

Citation:
Cannot modify header information - headers already sent by (output started at D:\wamp\www\gucci\accueil.php:40) in D:\wamp\www\gucci\fichiers\pdf\fpdf.php on line 1022
FPDF error: Some data has already been output to browser, can't send PDF file
Est-ce que tu sais pourquoi j'ai un problème d'header...
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 11h53   #13
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Alors j'ai peut-être trouvé une partie du problème(mais qu'il faudrait essayé de me résoudre).

J'ai mis la classe phpToPDF à la meme place que mon fichier (test.php) et là cela fonctionne.

J'utilise une arborescence pour mes classes PHP et cette classe n'a pas trop l'air d'aimer ceci

Par contre, petite question... Comment faire pour ajouter une boucle (DO-WHILE) dans ton tableau! QUe je puisse reprendre les infos de ma BD.

Merci pour tout
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 13h24   #14
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
pour le header, Il ne faut rien envoyer d'autre au navigateur que le PDF lui-même : pas d'HTML, pas d'espace, pas de retour-chariot, ni avant ni après

Pour ton arborescence, la classe est par défaut au meme niveau que le script sinon, change les chemins dans les include...

pour ajouter une boucle, voici un exemple avec un tableau à 3 colonnes...

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
 
<?php
include("phpToPDF.php");
 
$PDF=new phpToPDF();
$PDF->AddPage();
$PDF->SetFont('Arial','B',16);
 
// Définition des propriétés du tableau.
$proprietesTableau = array(
	'TB_ALIGN' => 'L',
	'L_MARGIN' => 15,
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => '0.3',
	);
 
// Définition des propriétés du header du tableau.	
$proprieteHeader = array(
	'T_COLOR' => array(150,10,10),
	'T_SIZE' => 12,
	'T_FONT' => 'Arial',
	'T_ALIGN' => 'C',
	'V_ALIGN' => 'T',
	'T_TYPE' => 'B',
	'LN_SIZE' => 7,
	'BG_COLOR_COL0' => array(170, 240, 230),
	'BG_COLOR' => array(170, 240, 230),
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => 0.2,
	'BRD_TYPE' => '1',
	'BRD_TYPE_NEW_PAGE' => '',
	);
 
// Contenu du header du tableau.	
$contenuHeader = array(
	50, 50, 50,
	"Titre de la première colonne", "année N-1", "année N",
	);
 
// Définition des propriétés du reste du contenu du tableau.	
$proprieteContenu = array(
	'T_COLOR' => array(0,0,0),
	'T_SIZE' => 10,
	'T_FONT' => 'Arial',
	'T_ALIGN_COL0' => 'L',
	'T_ALIGN' => 'R',
	'V_ALIGN' => 'M',
	'T_TYPE' => '',
	'LN_SIZE' => 6,
	'BG_COLOR_COL0' => array(245, 245, 150),
	'BG_COLOR' => array(255,255,255),
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => 0.1,
	'BRD_TYPE' => '1',
	'BRD_TYPE_NEW_PAGE' => '',
	);	
 
// Contenu du tableau.	
// C'EST LA QUE CA CHANGE
$contenuTableau = array();
 
// Si tu as tes valeurs dans un tableau sqlTab
for ($i=0 ; $i<count(sqlTab) ; $i++)
   array_push($contenuTableau, sqlTab[$i]);
 
 
// D'abord le PDF, puis les propriétés globales du tableau. 
// Ensuite, le header du tableau (propriétés et données) puis le contenu (propriétés et données)
$PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
 
$PDF->Output();
Je t'ai donné un exemple ave un tableau bidon, si tes valeurs proviennent d'une bdd, tu dois faire tes requêtes, récupérer tes valeurs et les stocker dans le tableau "$contenuTableau" avec la méthode array_push

++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 14h18   #15
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Alors j'ai réussi en mélangeant un peu tout.
Merci beaucoup en tout cas, normallement tout devrait être ok mnt...

Encore emrci
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 16h49   #16
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Petite question que j'ai pas saisi!
Comment faire pour placer le début du tableau dans une certaine position de la page.

Merci
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 19h45   #17
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
N'oublie pas le tag Résolu si ça l'est

++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 19h53   #18
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Citation:
Envoyé par jc_cornic
N'oublie pas le tag Résolu si ça l'est

++
JC
Ok, mais c'est pas totalement résolu...
Je cherche une réponse à comment placé mon tableau dans ma page...

J'aimerais qu'il soit placé à (100,10) de l'axe x et y!

Peut-tu encore m'aider la dessus
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 20h18   #19
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Oui, je peux encore t'aider là-dessus

Pour l'offset X, c'est dans le tableau suivant

Code :
1
2
3
4
5
6
7
 
$proprietesTableau = array(
	'TB_ALIGN' => 'L',
	'L_MARGIN' => 5,
	'BRD_COLOR' => array(0,92,177),
	'BRD_SIZE' => '0.3',
	);
L_MARGIN == offsetX

Pour l'offset Y, il faut placer avant l'appel à drawTableau la méthode suivante

J'ajoute qu'il y a dans le constructeur fpdf une "lMargin" qui est la left margin globale, par défaut égale à 10. Pour pas te prendre la tête, tu mets cette marge à 0 avec la méthode suivante

$PDF->SetLeftMargin(0);

Et tu gères ta marge de tableau avec L_MARGIN

Ca donne

Code :
1
2
3
4
5
6
 
...
$PDF->SetLeftMargin(0);
$PDF->SetY(70);
$PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
...
++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 20h20   #20
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Ok merci
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h17.


 
 
 
 
Partenaires

Hébergement Web