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 02/07/2007, 11h10   #1
Membre du Club
 
Inscription : janvier 2006
Messages : 250
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2006
Messages : 250
Points : 64
Points : 64
Par défaut [FPDF] Créer des badges automatiquement

Bonjour,

Je souhaite creer des badges auto via une base de donnée MSSQL :
J'ai plusieurs possiblitées :
-Impression d'un user.
-Impression d'un groupe.

Pour l'utilisateur simple c'est ok ...
J'ai un probleme en ce qui concerne le groupe d'utilisateur voici mon code :
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
session_start();
//inclusion du module permettant l'acces à la bdd
require("_include/dbaccess_mssql.inc.php");
//Pour le fpdf
define('FPDF_FONTPATH','../_include/fpdf/font/');
require('../_include/fpdf/fpdf.php');
//Connexion au serveur MSSQL
$mssql_connect = mssql_connect($Server_mssql, $User_mssql, $Pass_mssql) or die;
//Connexion au serveur my_sql
$sql_select = mssql_select_db($DB_mssql, $mssql_connect) or die;
 
 
class PDF extends FPDF
{
	//Construction de la forme du PDF
	function FPDF($orientation='P',$unit='mm',$format=array(86,54))
	{
		$this->PDF($orientation,$unit,$format);
		$this->posXlocale = 0;
		$this->posYlocale = 0;
		$this->setMargins(0,0,0);
	}
 
	//En-tête
	function Header()
	{
	    //Logo
	    $this->Image('_pics/Logo.jpg',21,2);
		$this->SetFont('Arial','B',6);
		$this->SetXY(0,11.5);
		$this->SetTextColor(0,72,138);
		$this->Cell(86,5,"Une entreprise du groupe DaimlerChrysler",0,1,'C');
	}
 
	//Pied de page
	function Footer()
	{
		global $site_footer;
		//Logo
		$this->SetFont('Arial','',10);
		$this->SetXY(0,49);
		$this->SetDrawColor(0,72,138);
		$this->SetFillColor(0,72,138);
		$this->SetTextColor(255,255,255);
		$this->Cell(86,5,"EvoBus France, Etablissement ".$site_footer.".",0,0,'C',1);
	}
 
	function ConstPDF($nom,$prenom,$site,$centre,$matricule)
	{
		$this->SetXY(3,24);
		$this->SetTextColor(0,72,138);
		$this->Cell(60,5,$nom.' '.$prenom);
		$this->SetXY(3,30);
		$this->Cell(60,5,$site.'-'.$centre.'-'.$matricule);
		$this->Cell(65,20,"",0,0,'C',0,$pdf->Image('1085.JPG',65,20));
	}
}//fin de classe 
 
 
//Requete MSSQL
$query_pers = 'SELECT PERS.NOM_ ,PERS.PRENOM_ , SAL.MATRICULE_ , AFC1.TEXTE_  as TEXTE1, AFC2.TEXTE_ as TEXTE2 '
						. ' FROM  '.$Table_pers.' PERS , '.$Table_sal.' SAL , '.$Table_affec.' AFC1, '.$Table_affec.' AFC2'
						. ' WHERE AFC2.TEXTE_ like "'.$_SESSION['search_nom'].'"'
						. ' AND  PERS.PERSONNE_ = SAL.PERSONNE_'
						. ' AND PERS.PERSONNE_ = AFC1.SALARIE_ '
						. ' AND PERS.PERSONNE_ = AFC2.SALARIE_ '
						. ' AND AFC1.TITRE_ZONE_="2" '
						. ' AND AFC2.TITRE_ZONE_="3" ;';
 
//Execution requete
$result_pers = mssql_query($query_pers);
$numRows_pers = mssql_num_rows($result_pers);
 
//affectation des variables a vide
$nom="";
$prenom="";
$matricule="";
$site ="";
$centre="";
 
//Creation du PDF
$pdf = new PDF(); //on instancie un nouveau PDF
$pdf->Open(); // on l'ouvre
$pdf->AddPage();// on y ajoute une première page
$pdf->SetFont('Arial','',14);//Type de police
$pdf->SetAutoPageBreak(false,0);//Creation d'une nouvelle page auto à false
 
while($row_pers = mssql_fetch_array($result_pers))
	{
		$nom       = $row_pers['NOM_'];
		$prenom    = $row_pers['PRENOM_'];
		$matricule = $row_pers['MATRICULE_'];
		$site      = $row_pers['TEXTE1'];
		//Permet de mettre le nom du site dans le footer 	
		switch($site)
		  {
			  case "0060":
			    $site_footer = "de Vitrolles";
				break;
			  case "0061":
			    $site_footer = "de Sarcelles";
				break;
			  case "0062":
			    $site_footer = "de Ligny en Barrois";
				break;
			  case "0069":
			    $site_footer = "des Antilles";
				break;
		  }
		$centre    = $row_pers['TEXTE2'];
 
		//Appel a la fonction ConstPDF
		$pdf->ConstPDF($nom,$prenom,$site,$centre,$matricule);
	}
//Fermeture de la BDD
@mssql_close();
//Sortie du FPDF
$pdf->Output();
$pdf->Close();
exit;
?>
Je ne voit pas trop ou est l'erreur ...
Citation:
Notice: Undefined variable: pdf in /home/httpd/dev/badges/fpdf_section.php on line 56

Fatal error: Call to a member function Image() on a non-object in /home/httpd/dev/badges/fpdf_section.php on line 56
Merci pour votre aide
javaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 11h44   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Ah oui c'est ta classe qui est bizarre, pourquoi tu as une méthode qui s'appelle FPDF? parce que je suis pas sur que tu puisses avoir une méthode qui a le nom de la classe parent.
A moins que tu essaies de surcharger le constructeur? et dans ce cas je ne pense pas que ca soit faisable comme ca, faut que tu fasses ta fonction __construct() qui va faire appel a parent::__construct() avec les bons paramètres.

Enfin deja essaies en retirant FPDF() pour voir
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 11h51   #3
Membre du Club
 
Inscription : janvier 2006
Messages : 250
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2006
Messages : 250
Points : 64
Points : 64
Quelle erreur de débutant ( c'est normal j'en suis un )

Code :
$this->Cell(65,20,"",0,0,'C',0,$pdf->Image('1085.JPG',65,20));
Il ne connait pas encore $pdf !

En ce qui concerne:
Citation:
A moins que tu essaies de surcharger le constructeur? et dans ce cas je ne pense pas que ca soit faisable comme ca, faut que tu fasses ta fonction __construct() qui va faire appel a parent::__construct() avec les bons paramètres.
Je ne sais pas ce que cela veut dire ,

J'ai donc modifier le code comme ceci :
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
session_start();
//inclusion du module permettant l'acces à la bdd
require("_include/dbaccess_mssql.inc.php");
//Pour le fpdf
define('FPDF_FONTPATH','../_include/fpdf/font/');
require('../_include/fpdf/fpdf.php');
//Connexion au serveur MSSQL
$mssql_connect = mssql_connect($Server_mssql, $User_mssql, $Pass_mssql) or die;
//Connexion au serveur my_sql
$sql_select = mssql_select_db($DB_mssql, $mssql_connect) or die;
 
 
class PDF extends FPDF
{
 
	//En-tête
	function Header()
	{
	    //Logo
	    $this->Image('_pics/Logo.jpg',21,2);
		$this->SetFont('Arial','B',6);
		$this->SetXY(0,11.5);
		$this->SetTextColor(0,72,138);
		$this->Cell(86,5,"Une entreprise du groupe DaimlerChrysler",0,1,'C');
	}
 
	//Pied de page
	function Footer()
	{
		global $site_footer;
		//Logo
		$this->SetFont('Arial','',10);
		$this->SetXY(0,49);
		$this->SetDrawColor(0,72,138);
		$this->SetFillColor(0,72,138);
		$this->SetTextColor(255,255,255);
		$this->Cell(86,5,"EvoBus France, Etablissement ".$site_footer.".",0,0,'C',1);
	}
 
	function ConstPDF($nom,$prenom,$site,$centre,$matricule)
	{
		$this->SetXY(3,24);
		$this->SetTextColor(0,72,138);
		$this->Cell(60,5,$nom.' '.$prenom);
		$this->SetXY(3,30);
		$this->Cell(60,5,$site.'-'.$centre.'-'.$matricule);
		$this->Cell(65,20,"",0,0,'C',0,$this->Image('1085.JPG',65,20));
	}
}//fin de classe 
 
 
//Requete MSSQL
$query_pers = 'SELECT PERS.NOM_ ,PERS.PRENOM_ , SAL.MATRICULE_ , AFC1.TEXTE_  as TEXTE1, AFC2.TEXTE_ as TEXTE2 '
						. ' FROM  '.$Table_pers.' PERS , '.$Table_sal.' SAL , '.$Table_affec.' AFC1, '.$Table_affec.' AFC2'
						. ' WHERE AFC2.TEXTE_ like "'.$_SESSION['search_nom'].'"'
						. ' AND  PERS.PERSONNE_ = SAL.PERSONNE_'
						. ' AND PERS.PERSONNE_ = AFC1.SALARIE_ '
						. ' AND PERS.PERSONNE_ = AFC2.SALARIE_ '
						. ' AND AFC1.TITRE_ZONE_="2" '
						. ' AND AFC2.TITRE_ZONE_="3" ;';
 
//Execution requete
$result_pers = mssql_query($query_pers);
$numRows_pers = mssql_num_rows($result_pers);
 
//affectation des variables a vide
$nom="";
$prenom="";
$matricule="";
$site ="";
$centre="";
 
//Creation du PDF
$dimensions = array(86,54);
$pdf=new PDF('P', 'mm', $dimensions);//on instancie un nouveau PDF
$pdf->posXlocale = 0;
$pdf->posYlocale = 0;
$pdf->setMargins(0,0,0);
$pdf->Open(); // on l'ouvre
$pdf->AddPage();// on y ajoute une première page
$pdf->SetFont('Arial','',14);//Type de police
$pdf->SetAutoPageBreak(false,0);//Creation d'une nouvelle page auto à false
 
while($row_pers = mssql_fetch_array($result_pers))
	{
		$nom       = $row_pers['NOM_'];
		$prenom    = $row_pers['PRENOM_'];
		$matricule = $row_pers['MATRICULE_'];
		$site      = $row_pers['TEXTE1'];
		//Permet de mettre le nom du site dans le footer 	
		switch($site)
		  {
			  case "0060":
			    $site_footer = "de Vitrolles";
				break;
			  case "0061":
			    $site_footer = "de Sarcelles";
				break;
			  case "0062":
			    $site_footer = "de Ligny en Barrois";
				break;
			  case "0069":
			    $site_footer = "des Antilles";
				break;
		  }
		$centre    = $row_pers['TEXTE2'];
 
		//Appel a la fonction ConstPDF
		$pdf->ConstPDF($nom,$prenom,$site,$centre,$matricule);
	}
//Fermeture de la BDD
@mssql_close();
//Sortie du FPDF
$pdf->Output();
$pdf->Close();
exit;
?>
C'est perfectible mais je crois que cela fonctionne .
Donc j'attend ta réponse sur la surcharge et je resous..
Merci
javaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 11h52   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
ben en fait je ne comprends pas a quoi servait la méthode FPDF dans ta classe PDF ?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 11h58   #5
Membre du Club
 
Inscription : janvier 2006
Messages : 250
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2006
Messages : 250
Points : 64
Points : 64
ba je ne sais pas j'ai un peu coder cette fonction sans reflechir mais je ne connais pas la surcharge...
Merci encore a toi pour ton aide ...
javaboy 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 20h02.


 
 
 
 
Partenaires

Hébergement Web