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 26/06/2006, 14h47   #1
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Par défaut [FPDF] Ajouter un retour à la ligne

Salut,

Je viens vous voir car j'ai un problème avec un script que j'ai trouvé sur fdpf, mais j'ai un problème, car il y a toujours un problème...

Le script fonctionne correctement, mais j'ai un problème car lorsque la donnée est plus longue que la colonne, une partie du texte est supprimé...

Ma question est la suivante comment faire pour que cela me fasse un retour à la ligne ???

D'avance merci pour vos réponses.
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 12h31   #2
Membre Expert
 
Avatar de davcha
 
Inscription : avril 2004
Messages : 1 132
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 1 132
Points : 1 190
Points : 1 190
write
davcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 13h02   #3
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Quoi Write que dois-je faire avec ???

Peux-tu me donner plus de renseignements.
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 14h14   #4
En attente de confirmation mail
 
Inscription : juin 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 6
Points : 2
Points : 2
pour write :

Cette méthode imprime du texte à partir de la position courante. Lorsque la marge droite est atteinte (ou que le caractère \n est rencontré), un saut de ligne est effectué et le texte continue à partir de la marge gauche. Au retour de la méthode, la position courante est située juste à la fin du texte.
Il est possible de mettre un lien sur le texte.

tu peux aussi utliser Muticell au lieu de Cell

Cette méthode permet d'imprimer du texte avec des retours à la ligne. Ceux-ci peuvent être automatiques (dès que le texte atteint le bord droit de la cellule) ou explicites (via le caractère \n). Autant de cellules que nécessaire sont imprimées, les unes en dessous des autres.
Le texte peut être aligné, centré ou justifié. Le bloc de cellules peut être encadré et le fond coloré.

rends toi au manuel de fpdf http://fpdf.org/
ciel06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 16h38   #5
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 85
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 85
Points : 26
Points : 26
MultiCell
MultiCell(float w, float h, string txt [, mixed border [, string align [, int fill]]])
moabomotal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 21h30   #6
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Salut,

J'ai essayé le code suivant :
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
<?php
define('FPDF_FONTPATH','font/');
require('../pdf/fpdf.php');
require('../fonction.php');
 
//Connect to your database
include("../connect.php");
 
//Create new pdf file
$pdf=new FPDF('L');
 
//Open file
$pdf->Open();
 
//Disable automatic page break
$pdf->SetAutoPageBreak(false);
 
//Add first page
$pdf->AddPage();
 
//set initial y axis position per page
$y_axis_initial = 25;
 
//Set Row Height
$row_height = 6;
 
//print column titles for the actual page
$pdf->SetFillColor(232,232,232);
$pdf->SetFont('Arial','B',12);
$pdf->SetY($y_axis_initial);
$pdf->SetX(25);
$pdf->Cell(60,6,'ELEVE',1,0,'C',0);
$pdf->Cell(20,6,'CLASSE',1,0,'C',0);
$pdf->Cell(120,6,'TITRE',1,0,'C',0);
$pdf->Cell(40,6,'DATE EMPRUNT',1,0,'C',0);
 
$y_axis = $y_axis_initial + $row_height;
 
//Select the Products you want to show in your PDF file
$sql = "SELECT biblio_ecole_nom.nom, biblio_ecole_nom.prenom, biblio_ecole_niveau.niveau, biblio_ecole_livre.titre, biblio_ecole_livre.auteur, biblio_ecole_emprunt.date_emprunt
	FROM ((biblio_ecole_emprunt INNER JOIN biblio_ecole_nom ON biblio_ecole_emprunt.id_nom = biblio_ecole_nom.id_nom) INNER JOIN biblio_ecole_livre ON biblio_ecole_emprunt.id_livre = biblio_ecole_livre.id_livre) INNER JOIN biblio_ecole_niveau ON biblio_ecole_nom.id_niveau = biblio_ecole_niveau.id_niveau
	WHERE (((biblio_ecole_emprunt.date_retour) ='00/00/0000'))
	GROUP BY biblio_ecole_emprunt.date_emprunt";
$result=mysql_query($sql);
 
//initialize counter
$i = 0;
 
//Set maximum rows per page
$max = 25;
 
while($row = mysql_fetch_array($result))
{
	//If the current row is the last one, create new page and print column title
	if ($i == $max)
	{
		$pdf->AddPage();
 
		//print column titles for the current page
		$pdf->SetFillColor(232,232,232);
		$pdf->SetY($y_axis);
		$pdf->SetX(25);
		$pdf->Cell(60,6,'ELEVE',1,0,'C',0);
		$pdf->Cell(20,6,'CLASSE',1,0,'C',0);
		$pdf->Cell(120,6,'TITRE',1,0,'C',0);
		$pdf->Cell(40,'DATE EMPRUNT',1,0,'C',0);
 
		//Go to next row
		$y_axis = $y_axis  + $row_height;
 
		//Set $i variable to 0 (first row)
		$i = 0;
	}
 
 
 
	$nom = inmodif_lettre($row['nom']); 
	$prenom = inmodif_lettre($row['prenom']);
	$classe = $row['niveau'];
	$titre = inmodif_lettre($row['titre']);
	$auteur = inmodif_lettre($row['auteur']);
	$date = $row['date_emprunt'];
 
	$pdf->SetFillColor(255,255,255);
	$pdf->SetY($y_axis);
	$pdf->SetX(25);
 
		$x = $pdf->GetX();
		$y = $pdf->GetY();
		$pdf->Cell(60,6,$nom.' '.$prenom,0,'LR','L',0);
 
		$pdf->SetXY($x + 60,$y);
		$x = $pdf->GetX();
		$pdf->Cell(20,6,$classe,0,'LR','C',0);
 
		$pdf->SetXY($x + 20,$y);
		$x = $pdf->GetX();
		$pdf->MultiCell(120,6,$titre.' ('.$auteur.')',1,'LR','L',0);
 
 
		$pdf->SetXY($x + 120,$y);
		$x = $pdf->GetX();
		$y = $pdf->GetY();
		$pdf->Cell(40,6,$date.'('.$y.')',0,'LR','C',0);
 
 
 
	//Go to next row
 
	$y = $pdf->GetY();
	$y_axis = $y_axis + $y;
	$i = $i + 1;
}
 
//Create file
$pdf->Output();
?>
Mais le problème est que cela me fait un saut important de ligne. J'ai deux données, par exemple la première donnée est en ligne 1, et la seconde se place en ligne 6...

Est-que vous trouvez mon erreur ???
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2006, 10h59   #7
En attente de confirmation mail
 
Inscription : juin 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 6
Points : 2
Points : 2
bonjour,

Citation:
$pdf->MultiCell(120,6,$titre.' ('.$auteur.')',1,'LR','L',0);
ici tu mets 6 dans la hauteur de la cellule ( 2eme param)
donc c'est normal que ça va te faire un grand saut de ligne ..
ciel06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 08h43   #8
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Citation:
Envoyé par ciel06
bonjour,



ici tu mets 6 dans la hauteur de la cellule ( 2eme param)
donc c'est normal que ça va te faire un grand saut de ligne ..
Non cela ne fonctionne pas en mettant autre chose que 6, j'ai essayé avec des valeurs inférieures, et le résultat n'est pas bon...

Alors, j'ai fait le code suivant :
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
<?php
define('FPDF_FONTPATH','font/');
require('../pdf/fpdf.php');
require('../fonction.php');

//Connect to your database
include("../connect.php");

//Create new pdf file
$pdf=new FPDF('L');

//Open file
$pdf->Open();

//Disable automatic page break
$pdf->SetAutoPageBreak(false);

//Add first page
$pdf->AddPage();

//set initial y axis position per page
$y_axis_initial = 25;

//Set Row Height
$row_height = 6;

//print column titles for the actual page
$pdf->SetFillColor(0,0,0);
$pdf->SetTextColor(255,255,255);
$pdf->SetFont('Arial','B',12);
$pdf->SetY($y_axis_initial);
$pdf->SetX(25);
$pdf->Cell(60,6,'ELEVE',1,0,'C',1);
$pdf->Cell(20,6,'CLASSE',1,0,'C',1);
$pdf->Cell(120,6,'TITRE',1,0,'C',1);
$pdf->Cell(40,6,'DATE EMPRUNT',1,0,'C',1);

$y_axis = $y_axis_initial + $row_height;

//Select the Products you want to show in your PDF file
$sql = "SELECT biblio_ecole_nom.nom, biblio_ecole_nom.prenom, biblio_ecole_niveau.niveau, biblio_ecole_livre.titre, biblio_ecole_livre.auteur, biblio_ecole_emprunt.date_emprunt
	FROM ((biblio_ecole_emprunt INNER JOIN biblio_ecole_nom ON biblio_ecole_emprunt.id_nom = biblio_ecole_nom.id_nom) INNER JOIN biblio_ecole_livre ON biblio_ecole_emprunt.id_livre = biblio_ecole_livre.id_livre) INNER JOIN biblio_ecole_niveau ON biblio_ecole_nom.id_niveau = biblio_ecole_niveau.id_niveau
	WHERE (((biblio_ecole_emprunt.date_retour) ='00/00/0000'))
	GROUP BY biblio_ecole_emprunt.date_emprunt";
$result=mysql_query($sql);

//initialize counter
$i = 0;

//Set maximum rows per page
$max = 25;

while($row = mysql_fetch_array($result))
{
	//If the current row is the last one, create new page and print column title
	if ($i == $max)
	{
		$pdf->AddPage();

		//print column titles for the current page
		$pdf->SetFillColor(0,0,0);
		$pdf->SetTextColor(255,255,255);
		$pdf->SetY($y_axis);
		$pdf->SetX(25);
		$pdf->Cell(60,6,'ELEVE',1,0,'C',0);
		$pdf->Cell(20,6,'CLASSE',1,0,'C',0);
		$pdf->Cell(120,6,'TITRE',1,0,'C',0);
		$pdf->Cell(40,'DATE EMPRUNT',1,0,'C',0);
		
		//Go to next row
		$y_axis = $y_axis  + $row_height;
		
		//Set $i variable to 0 (first row)
		$i = 0;
	}
	
	

	$nom = inmodif_lettre($row['nom']); 
	$prenom = inmodif_lettre($row['prenom']);
	$classe = $row['niveau'];
	$titre = inmodif_lettre($row['titre']);
	$auteur = inmodif_lettre($row['auteur']);
	$date = $row['date_emprunt'];

	$pdf->SetFillColor(255,255,255);
	$pdf->SetTextColor(0,0,0);
	$pdf->SetY($y_axis);
	$pdf->SetX(25);
		
		$x = $pdf->GetX();
		$y = $pdf->GetY();
		$pdf->Cell(60,6,$nom.' '.$prenom,0,'LR','L',0);
		
		$pdf->SetXY($x + 60,$y);
		$x = $pdf->GetX();
		$pdf->Cell(20,6,$classe,0,'LR','C',0);
		
		$pdf->SetXY($x + 20,$y);
		$x = $pdf->GetX();
		$pdf->MultiCell(120,6,$titre.' ('.$auteur.')',0,'LR','J',0);
		$a = $pdf->GetY();
			
		$pdf->SetXY($x + 120,$y);
		$x = $pdf->GetX();
		$y = $pdf->GetY();
		$b = $a - $y;
		$pdf->Cell(40,6,$date.$a1,0,'LR','C',0);
		
	$pdf->Line(25,$a,265,$a);
	

	//Go to next row
	
	$y_axis = $y_axis + $b;
	$i = $i + 1;
}

//Create file
$pdf->Output();
?>
En rajoutant les lignes en rouge, cela fonctionne correctement.
zoom61 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 23h41.


 
 
 
 
Partenaires

Hébergement Web