IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[FPDF] Retour à la ligne.. (FPDF)


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [FPDF] Retour à la ligne.. (FPDF)
    Bonjour,

    Je sais qu'il y a déjà beaucoup de sujet dessus, mais j'ai un problème avec mes retours à la ligne, je n'arrive pas à mettre les cellules d'une même ligne à la même hauteur.. J'ai cherché sur les autres sujets, mais je n'ai pas trouvé grand chose.. J'ai 5 colonnes mais je n'en ai que deux qui peuvent avoir plusieurs lignes, j'ai essayé d'utiliser des variables pour la hauteur mais j'ai pas vraiment réussi..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $pdf->SetDrawColor(200,203,203);
    			$pdf->SetFillColor(223,243,240);
    			$pdf->SetLineWidth(0.4);
    			$pdf->cell(35,8,"Date/Heures",1,0,"C", true); 
    			$pdf->cell(50,8,"Sujet",1,0,"C", true); 
    			$pdf->cell(50,8,"Description",1,0,"C",true); 
    			$pdf->cell(30,8,utf8_decode('Temps passé'),1,0,"C",true); 
    			$pdf->cell(25,8,utf8_decode('Déplacement'),1,1,"C",true); 
     
     
    					$pdf->Ln(0); 
    					$pdf->SetFillColor(255,255,255);
    					$pdf->SetFont('Arial','B',8);
     
     
    					$x = $pdf->GetX();
    					$y = $pdf->GetY();
     
    					$pdf->cell(35,5,utf8_decode("AAAAAAAAAAAAAAAA"),1,"C",true); 
    					$pdf->SetXY($x + 35,$y);
    					$x = $pdf->GetX();
    					$pdf->multicell(50,5,utf8_decode("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"),1,"C",true); 
    					$pdf->SetXY($x + 50,$y);
    					$x = $pdf->GetX();
    					$pdf->multicell(50,5,utf8_decode("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"),1,"C",true); 
    					$pdf->SetXY($x + 50,$y);
    					$x = $pdf->GetX();
    					$pdf->cell(30,5,utf8_decode("ddddddddddddddd"),1,"C",true); 
    					$pdf->SetXY($x + 30,$y);
    					$x = $pdf->GetX();
    					$pdf->cell(25,5,utf8_decode("EEEEEEEEEEEE"),1,"C",true);
    Voici ce que j'obtiens :



    Merci d'avance.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    En fait, il faut que j'arrive à trouver le nombre de ligne que va utiliser ma deuxième et ma troisième données, après je pense que je pourrais calculer la hauteur de chaque cellule. Mais je sais pas comment faire non plus pour trouver ça..

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Au final j'ai réussi à régler mon problème avec du "bidouillage" qui a l'aire de fonctionner ..

    Pour ceux que ça interesse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $Size = 5;
    					$test = "CCCCCCZEAZEZAEEEAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEFFFCCC";
    					$test2 = "BBBBBAAAAAAAAAAAAAAAAAAAAAAAABBbbbb";
    					$long=$pdf->GetStringWidth($test) ;
    					$long2=$pdf->GetStringWidth($test2) ;
     
    					if ($long > 50 AND $long2 >50){
    						$res = $long/50;
    						$res = ceil($res);
    						$res2 = $long2/50;
    						$res2 = ceil($res2);
    						if ($long>$long2){
    							$calc = $res/$res2;
    						}
    						else
    						{
    							$calc = $res2/$res;
    						}
    					}
    					else
    					{
    						if ($long>$long2){
    						$res = $long/50;
    						$calc = ceil($res);
    						}
    						else
    						{
    						if ($long<$long2){
    						$res2 = $long2/50;
    						$calc = ceil($res2);
    						}
    						}
    					}
     
     
    					if ($long>$long2){
    						if ($long>50){
    							$Size2 = 5;
    							$res = $long / 50;
    							$res2 = ceil($res); 
    							$Size = $Size * $res2;
    							$Size1 = $Size2*$calc;
     
    						}
    					}
    						else
    					{
    						if ($long2>50){
    							$Size1 = 5;
    							$res = $long2 / 50;
    							$res2 = ceil($res); 
    							$Size = $Size * $res2;
    							$Size2 = $Size1 * $calc ;
    						}
    					}
     
    					if ($long<50 AND $long2<50){
    						$Size1=5;
    						$Size2=5;
    					}
     
    					$x = $pdf->GetX();
    					$y = $pdf->GetY();
     
    					$pdf->cell(35,$Size,utf8_decode("AAAAAAAAAAAAAAAA"),1,"C",true); 
    					$pdf->SetXY($x + 35,$y);
    					$x = $pdf->GetX();
    					$pdf->multicell(50,$Size1,utf8_decode($test2),1,"C",true); 
    					$pdf->SetXY($x + 50,$y);
    					$x = $pdf->GetX();
    					$pdf->multicell(50,$Size2,utf8_decode($test),1,"C",true); 
    					$pdf->SetXY($x + 50,$y);
    					$x = $pdf->GetX();
    					$pdf->cell(30,$Size,utf8_decode("ddddddddddddddd"),1,"C",true); 
    					$pdf->SetXY($x + 30,$y);
    					$x = $pdf->GetX();
    					$pdf->cell(25,$Size,utf8_decode("EEEEEEEEEEEE"),1,1,"C",true);
    					}

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Dainku Voir le message
    Au final j'ai réussi à régler mon problème avec du "bidouillage" qui a l'aire de fonctionner ..

    Pour ceux que ça interesse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $Size = 5;
    					$test = "CCCCCCZEAZEZAEEEAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEFFFCCC";
    					$test2 = "BBBBBAAAAAAAAAAAAAAAAAAAAAAAABBbbbb";
    					$long=$pdf->GetStringWidth($test) ;
    					$long2=$pdf->GetStringWidth($test2) ;
     
    					if ($long > 50 AND $long2 >50){
    						$res = $long/50;
    						$res = ceil($res);
    						$res2 = $long2/50;
    						$res2 = ceil($res2);
    						if ($long>$long2){
    							$calc = $res/$res2;
    						}
    						else
    						{
    							$calc = $res2/$res;
    						}
    					}
    					else
    					{
    						if ($long>$long2){
    						$res = $long/50;
    						$calc = ceil($res);
    						}
    						else
    						{
    						if ($long<$long2){
    						$res2 = $long2/50;
    						$calc = ceil($res2);
    						}
    						}
    					}
     
     
    					if ($long>$long2){
    						if ($long>50){
    							$Size2 = 5;
    							$res = $long / 50;
    							$res2 = ceil($res); 
    							$Size = $Size * $res2;
    							$Size1 = $Size2*$calc;
     
    						}
    					}
    						else
    					{
    						if ($long2>50){
    							$Size1 = 5;
    							$res = $long2 / 50;
    							$res2 = ceil($res); 
    							$Size = $Size * $res2;
    							$Size2 = $Size1 * $calc ;
    						}
    					}
     
    					if ($long<50 AND $long2<50){
    						$Size1=5;
    						$Size2=5;
    					}
     
    					$x = $pdf->GetX();
    					$y = $pdf->GetY();
     
    					$pdf->cell(35,$Size,utf8_decode("AAAAAAAAAAAAAAAA"),1,"C",true); 
    					$pdf->SetXY($x + 35,$y);
    					$x = $pdf->GetX();
    					$pdf->multicell(50,$Size1,utf8_decode($test2),1,"C",true); 
    					$pdf->SetXY($x + 50,$y);
    					$x = $pdf->GetX();
    					$pdf->multicell(50,$Size2,utf8_decode($test),1,"C",true); 
    					$pdf->SetXY($x + 50,$y);
    					$x = $pdf->GetX();
    					$pdf->cell(30,$Size,utf8_decode("ddddddddddddddd"),1,"C",true); 
    					$pdf->SetXY($x + 30,$y);
    					$x = $pdf->GetX();
    					$pdf->cell(25,$Size,utf8_decode("EEEEEEEEEEEE"),1,1,"C",true);
    					}
    Au final ça fonctionnais pas correctement, j'ai utilisé la fonction NbLines pour corriger mon problème, voici le nouveau code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $long2 = $pdf->NbLines(50,$Var1);
    					$long = $pdf->NbLines(50,$Var2);
     
     
     
    					if ($long>1 AND $long2>1){
    						if ($long > $long2){
    							$Size = 8;
    							$Size1 = 8;
    							$Size2 = 8;
    							$res = $long/$long2;
    							$Size1 = $Size1 * $res;
    							$Size = $Size * $long;
    						}
    						if ($long < $long2){
    							$Size = 8;
    							$Size1 = 8;
    							$Size2 = 8;
    							$res = $long2/$long;
    							$Size2 = $Size2 * $res;
    							$Size = $Size * $long2;
    						}
    						if ($long == $long2){
    							$Size = 8;
    							$Size1 = 8;
    							$Size2 = 8;
    							$Size = $Size * $long;
    						}
    					}
     
    					if ($long>1 AND $long2==1){
    						$Size = 8;
    						$Size1 = 8;
    						$Size2 = 8;
    						$Size = $Size * $long;
    						$Size1 = $Size1 * $long;
    					}
     
    					if ($long==1 AND $long2>1){
    						$Size = 8;
    						$Size1 = 8;
    						$Size2 = 8;
    						$Size = $Size * $long2;
    						$Size2 = $Size2 * $long2;
    					}
     
    					if ($long==1 AND $long2==1){
    						$Size = 8;
    						$Size1 = 8;
    						$Size2 = 8;
    					}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] MultiCell et retour à la ligne dans texte venant d'une BDD
    Par jekif dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/07/2011, 12h44
  2. [FPDF] Retours à la ligne
    Par math11 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/12/2010, 20h22
  3. [FPDF] retour à la ligne dans un tableau
    Par Lulu_n10 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/05/2009, 11h25
  4. [FPDF] Chaînes longues - retour à la ligne auto ?
    Par patrickzfr dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/10/2007, 21h01
  5. [FPDF] Retours à la ligne
    Par BenoitDenis dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 03/04/2006, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo