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 08/05/2007, 20h31   #1
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
Par défaut [FPDF] header pour fpdf

Bonjour
Boilà, j'ai créussi à faire un document pdf à partir de ma base de données. Tout marche bien, voici le 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
<?php require_once('Connections/perso.php');
require('fpdf/fpdf.php');
 
mysql_select_db($database_perso, $perso);
$query = "SELECT * FROM joueurs";
 
$resultat=mysql_query($query);
 
$pdf=new FPDF('P','cm','A4');
$pdf->AddPage();
 
//Titres des colonnes
$pdf->SetFont('Arial','B',14);
$pdf->SetFillColor(96,96,96);
$pdf->SetTextColor(255,255,255);
$header=array('Nom','Prénom','Indice');
 
$pdf->SetXY(3,3);
for($i=0;$i<sizeof($header);$i++)
$pdf->cell(5,1,$header[$i],1,0,'C',1);
// Affichage des données
$pdf->SetFillColor(0xdd,0xdd,0xdd);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',10);
$pdf->SetXY(3,$pdf->GetY()+1);
$fond=0;
while($row=mysql_fetch_array($resultat))
{
$pdf->cell(5,0.7,$row['NOM'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['PRENOM'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['IV_CLASSEMENT'],1,0,'C',$fond);
 
$pdf->SetXY(3,$pdf->GetY()+0.7);
$fond=!$fond;
}
$pdf->output();
?>
 
<?php
mysql_free_result($query);
?>
Je voudrais maintenant ajouter un header et un footer. J'ai vu des idées sur le site de fpdf mais ça ne fonctionne pas. Je pense qu'il y a un pb lorsque l'on crée un document selon que l'on utilise
Code :
$pdf=new FPDF('P','cm','A4');
ou bien
Est-ce que quelqu'un aurait une idée ?
Merci
__________________
lebreton22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 20h36   #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, pourrais-tu préciser ce qui ne fonctionne pas ?? Normalement, tu peux surcharger les méthodes Header et Footer initialement définies dans la classe de base FPDF.

Peux tu préciser ce qui ne fonctionne pas et y joindre le code complet ?

++
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 08/05/2007, 20h52   #3
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
Merci
J'ai tout mis le code
Ce que je cherchais, c'était d'ajouter ce que j'avais trouvé dans les tutod de fpdf (instanciation de classe) mais je n'arrive pas à l'utiliser correctement.
A l'origine, le codé était donc
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
<?php require_once('Connections/perso.php');
require('fpdf/fpdf.php');
class PDF extends FPDF
{
//En-tête
function Header()
{
    //Logo
    $this->Image('logo_pb.png',10,8,33);
    //Police Arial gras 15
    $this->SetFont('Arial','B',15);
    //Décalage à droite
    $this->Cell(80);
    //Titre
    $this->Cell(30,10,'Titre',1,0,'C');
    //Saut de ligne
    $this->Ln(20);
}
 
//Pied de page
function Footer()
{
    //Positionnement à 1,5 cm du bas
    $this->SetY(-15);
    //Police Arial italique 8
    $this->SetFont('Arial','I',8);
    //Numéro de page
    $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
mysql_select_db($database_perso, $perso);
$query = "SELECT * FROM joueurs";
 
$resultat=mysql_query($query);
 
$pdf=new FPDF('P','cm','A4');
$pdf->AliasNbPages();
$pdf->AddPage();
 
//Titres des colonnes
$pdf->SetFont('Arial','B',14);
$pdf->SetFillColor(96,96,96);
$pdf->SetTextColor(255,255,255);
$header=array('Nom','Prénom','Indice');
 
$pdf->SetXY(3,3);
for($i=0;$i<sizeof($header);$i++)
$pdf->cell(5,1,$header[$i],1,0,'C',1);
// Affichage des données
$pdf->SetFillColor(0xdd,0xdd,0xdd);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',10);
$pdf->SetXY(3,$pdf->GetY()+1);
$fond=0;
while($row=mysql_fetch_array($resultat))
{
$pdf->cell(5,0.7,$row['NOM'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['PRENOM'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['IV_CLASSEMENT'],1,0,'C',$fond);
 
$pdf->SetXY(3,$pdf->GetY()+0.7);
$fond=!$fond;
}
 
$pdf->output();
?>
 
<?php
mysql_free_result($query);
?>
Le tableau s'affiche mais rien de plus
__________________
lebreton22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 07h55   #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, c normal

En fait, tu créé une classe PDF en y ajoutant les header et footer mais tu utilises la ligne suivante:

Code :
$pdf=new FPDF('P','cm','A4');
Tu aurais du mettre

Code :
$pdf=new PDF('P','cm','A4');
Tu prendras ainsi en compte tes surcharges de méthodes header et footer...

++
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 09/05/2007, 13h03   #5
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
Effectivement, j'avais fait la modif mais je n'ai toujours pas d'entête ni de pied de page et comme j'y connais peu de choses ....
__________________
lebreton22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 13h06   #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
Ok, tu peux joindre tout ton code ? Tu as changé new FPDF en new PDF ?


++
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 09/05/2007, 14h01   #7
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
excuse-moi mais je ne peux y accéder car je suis au boulot
C'est exactement le code de mon message au-dessus en ayant mis
Code :
$pdf=new PDF('P','cm','A4');
au lieu de
Code :
$pdf=new FPDF('P','cm','A4');
__________________
lebreton22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h39   #8
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
Bonjour,

Je vois que tu passes des paramètres au constructeur de ta classe PDF et que tu forces donc la taille par défaut à des centimètres et non pas des millimètres. Une piste serait donc que ton Header n'apparait pas sur ta page (qui ne fait que 29,7cm de haut).
Je ne sais pas du tout si c'est ca, mais j'ai testé sur mon pdf en passant la taille en centimètre j'ai juste mon logo en milieu de page du coup et rien d'autre!

Tiens nous au courant,

Koopajah
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 19h21   #9
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
Je pense que le problème est lié aux mesures car lorsque je remplace
Code :
$pdf=new PDF('P','cm','A4');
par
Code :
$pdf=new PDF('P','mm','A4');
Cette fois le header est visible mais le reste est illisible
__________________
lebreton22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 09h24   #10
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
Bon, au moins tu as trouvé d'où venait le probleme.
Si tu tiens à garder les mesures en cm il faut que tu modifies les coordonnées que tu utilises dans ton header et dans ton footer, mais raisonner en mm est peut etre plus pratique et permet de placer plus finement tes cellules.

C'est normal que le reste devienne illisible. Tu as préparé ton tableau pour des mesures en centimetre, donc chaque ligne fait par exemple 2 cm de haut et 8 de large.
Maintenant tu as tout passé en mm et donc tes lignes sont de 2mm de haut et 8mm de large!

Il faut donc soit modifier les coordonnées du header et du footer pour etre en millimètres soit modifier celle des pages à proprement parler pour être en centimetres
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 13h28   #11
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
Merci de ta patience koopajah
Tout marche en calant bien les lignes
Je joins le code complet pour ceux que ça intéresserait
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
<?php require_once('Connections/perso.php'); 
require('fpdf/fpdf.php'); 
class PDF extends FPDF 
{
 
//En-tête 
function Header() 
{  
//Logo  
$this->Image('images/comité br.jpg',10,8,33); 
//Police Arial gras 15  
$this->SetFont('Arial','B',15);
 //Décalage à droite  
 $this->Cell(80); 
//Titre  
$this->Cell(50,10,'Titre',1,0,'C');
//Saut de ligne  
$this->Ln(20);
 }   
//Pied de page 
function Footer() 
{  
//Positionnement à 1,5 cm du bas  
$this->SetY(-15); 
//Police Arial italique 8  
$this->SetFont('Arial','I',8); 
//Numéro de page  
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
} 
} 
mysql_select_db($database_perso, $perso); 
$query = "SELECT * FROM joueurs";   
$resultat=mysql_query($query);  
 
$pdf=new PDF('P','mm','A4'); 
$pdf->AliasNbPages(); 
$pdf->AddPage();   
//Titres des colonnes 
$pdf->SetFont('Arial','B',14); 
$pdf->SetFillColor(96,96,96); 
$pdf->SetTextColor(255,255,255); 
$header=array('Nom','Prénom','Indice');   
$pdf->SetXY(30,30); 
for($i=0; $i<sizeof($header); $i++) 
$pdf->cell(50,10,$header[$i],1,0,'C',1); 
// Affichage des données 
$pdf->SetFillColor(0xdd,0xdd,0xdd); 
$pdf->SetTextColor(0,0,0); 
$pdf->SetFont('Arial','',10); 
$pdf->SetXY(30,$pdf->GetY()+10); 
$fond=0; 
while($row=mysql_fetch_array($resultat)) 
{ 
$pdf->cell(50,7,$row['NOM'],1,0,'C',$fond); 
$pdf->cell(50,7,$row['PRENOM'],1,0,'C',$fond); 
$pdf->cell(50,7,$row['IV_CLASSEMENT'],1,0,'C',$fond);   
$pdf->SetXY(30,$pdf->GetY()+7); 
$fond=!$fond; 
}   
$pdf->output();
 ?>   
<?php mysql_free_result($query); ?>
__________________
lebreton22 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 03h16.


 
 
 
 
Partenaires

Hébergement Web