par
Nano » 27 juil. 2022, 11:44
Bonjour,
Je suis débutante en Fpdf et voilà plusieurs jours que je galère à afficher mes tableaux en 3 pages.
Mon code récupère des critères depuis une bdd pour les afficher dans des petits tableaux
Mon pdf se caractérise par deux colonnes droite et gauche.
Ma premier page s’affiche correctement. je rajoute une page et je fige dessus un cadre en plus des tableaux de critères.
Sur ma 2ème page les tableaux se superposent . Alors, j’ai décidé d’ajouter une 3ème page pour avoir suffisamment d’espace
Lorsque j’ajoute la 3ème page, ma page 2 se vide(aucun critère ne s’affiche) et plusieurs pages se génèrent, je me retrouve avec 6 pages au lieu de 3 pages et les critères s’éparpillent n’importe comment sur les pages suivante.
pourquoi ma page 2 se vide et pourquoi il me génère 6 pages alors que mon SetAutoPageBreak est à 0 (false)?
Est-ce que mes condition pour rajouter une 3ème page sont fausse ?
Je vous remercie par avance pour vos réponse
Mon code
<?php
define('FPDF_FONTPATH',"../font/");
require_once(DIR_WS_FUNCTIONS . 'criteres.php');
//page 1
$pagecount = $pdf->setSourceFile($dir . $file);
$tplidx = $pdf->ImportPage(« 1 »);
$pdf->AddPage();
$pdf->useTemplate($tplidx,0,0,210,297);
$pdf->SetAutoPageBreak(0,1);
// Affichage du header
$taille_cellulle = 4;
$page = « 1 »;
/**************** COLONNE DE DROITE ******************/
//récupération de critères
/**************** COLONNE DE GAUCHE******************/
$x_cell = 3;
$y_cell = 39.5;
foreach($array_criteres as $parent_id => $criteres)
{
$nb_tab_critere = count($criteres)-1;
$add_pos = 0;
$nb = "";
for ($i=0;$i<$nb_tab_critere;$i++)
{
$nb = $nb + 1;
$comment = strpos($criteres[$i]['name'],"Commentaires");
if ($comment === false)
{
$taille_fin = "255";
$comment = strpos($criteres[$i]['name'],"Affichette");
if ($comment === false)
{
$taille_fin = "255";
$comment = strpos($criteres[$i]['name'],"Publicité");
}
}
else
{
$taille_fin = "286";
}
if ($comment !== false)
{
$add_pos += 18;
}
else
{
$add_pos += 0;
}
}
$taille_fin = "275";
$taille_tableau = (4 * $nb_tab_critere) + $add_pos;
$taille_reste = $taille_fin - $y_cell;
// affichage de Page 2
if ($y_cell > $taille_fin || $taille_tableau > $taille_reste)
{
if($page == "1")
{
$y_cell = 6;
$tplidx = $pdf->ImportPage("1");
$pdf->AddPage();
$pdf->SetAutoPageBreak(0,1);
// couleur de fond
$pdf->SetFillColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->SetDrawColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->Rect(0,0,210,297,"FD");
$pdf->SetTextColor($color_fond);
$pdf->SetXY(1,140);
$pdf->SetFont('arial','',4);
$pdf->MultiCell(2, 2, "Document non contractuel" , '' , 'C');
}
$page = "2";
// Colonne de droite sur la page 2
if ($y_cell > $taille_fin && $page == "2")
{
$y_cell = 10;
$x_cell = 108;
//affichage du cadre figé sur la page2
}
}
//Affichage page 3
if ($y_cell > $taille_fin || $taille_tableau > $taille_reste)
{
if($page == "2")
{
$y_cell = 6;
$tplidx = $pdf->ImportPage("1");
$pdf->AddPage();
$pdf->SetAutoPageBreak(0,1);
// couleur de fond
$pdf->SetFillColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->SetDrawColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->Rect(0,0,210,297,"FD");
$pdf->SetTextColor($color_fond);
$pdf->SetXY(1,140);
$pdf->SetFont('arial','',4);
$pdf->MultiCell(2, 2, "Document non contractuel" , '' , 'C');
}
$page = "3";
// Colonne de droite sur la page 3
if ($y_cell > $taille_fin && $page == "3")
{
$y_cell = 10;
$x_cell = 108;
//récupération de critères
}
}
// d’autre traitement
//
}
if (file_exists($filetmp)) unlink($filetmp);
$pdf->Output();
$pdf->Output($filetmp,"F");
$pdf->closeParsers();
?>
Bonjour,
Je suis débutante en Fpdf et voilà plusieurs jours que je galère à afficher mes tableaux en 3 pages.
Mon code récupère des critères depuis une bdd pour les afficher dans des petits tableaux
Mon pdf se caractérise par deux colonnes droite et gauche.
Ma premier page s’affiche correctement. je rajoute une page et je fige dessus un cadre en plus des tableaux de critères.
Sur ma 2ème page les tableaux se superposent . Alors, j’ai décidé d’ajouter une 3ème page pour avoir suffisamment d’espace
Lorsque j’ajoute la 3ème page, ma page 2 se vide(aucun critère ne s’affiche) et plusieurs pages se génèrent, je me retrouve avec 6 pages au lieu de 3 pages et les critères s’éparpillent n’importe comment sur les pages suivante.
pourquoi ma page 2 se vide et pourquoi il me génère 6 pages alors que mon SetAutoPageBreak est à 0 (false)?
Est-ce que mes condition pour rajouter une 3ème page sont fausse ?
Je vous remercie par avance pour vos réponse
Mon code
<?php
define('FPDF_FONTPATH',"../font/");
require_once(DIR_WS_FUNCTIONS . 'criteres.php');
//page 1
$pagecount = $pdf->setSourceFile($dir . $file);
$tplidx = $pdf->ImportPage(« 1 »);
$pdf->AddPage();
$pdf->useTemplate($tplidx,0,0,210,297);
$pdf->SetAutoPageBreak(0,1);
[i] // Affichage du header[/i]
$taille_cellulle = 4;
$page = « 1 »;
/**************** COLONNE DE DROITE ******************/
//récupération de critères
/**************** COLONNE DE GAUCHE******************/
$x_cell = 3;
$y_cell = 39.5;
foreach($array_criteres as $parent_id => $criteres)
{
$nb_tab_critere = count($criteres)-1;
$add_pos = 0;
$nb = "";
for ($i=0;$i<$nb_tab_critere;$i++)
{
$nb = $nb + 1;
$comment = strpos($criteres[$i]['name'],"Commentaires");
if ($comment === false)
{
$taille_fin = "255";
$comment = strpos($criteres[$i]['name'],"Affichette");
if ($comment === false)
{
$taille_fin = "255";
$comment = strpos($criteres[$i]['name'],"Publicité");
}
}
else
{
$taille_fin = "286";
}
if ($comment !== false)
{
$add_pos += 18;
}
else
{
$add_pos += 0;
}
}
$taille_fin = "275";
$taille_tableau = (4 * $nb_tab_critere) + $add_pos;
$taille_reste = $taille_fin - $y_cell;
// affichage de Page 2
if ($y_cell > $taille_fin || $taille_tableau > $taille_reste)
{
if($page == "1")
{
$y_cell = 6;
$tplidx = $pdf->ImportPage("1");
$pdf->AddPage();
$pdf->SetAutoPageBreak(0,1);
// couleur de fond
$pdf->SetFillColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->SetDrawColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->Rect(0,0,210,297,"FD");
$pdf->SetTextColor($color_fond);
$pdf->SetXY(1,140);
$pdf->SetFont('arial','',4);
$pdf->MultiCell(2, 2, "Document non contractuel" , '' , 'C');
}
$page = "2";
// Colonne de droite sur la page 2
if ($y_cell > $taille_fin && $page == "2")
{
$y_cell = 10;
$x_cell = 108;
//affichage du cadre figé sur la page2
}
}
//Affichage page 3
if ($y_cell > $taille_fin || $taille_tableau > $taille_reste)
{
if($page == "2")
{
$y_cell = 6;
$tplidx = $pdf->ImportPage("1");
$pdf->AddPage();
$pdf->SetAutoPageBreak(0,1);
// couleur de fond
$pdf->SetFillColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->SetDrawColor($rouge_fond,$bleu_fond,$vert_fond);
$pdf->Rect(0,0,210,297,"FD");
$pdf->SetTextColor($color_fond);
$pdf->SetXY(1,140);
$pdf->SetFont('arial','',4);
$pdf->MultiCell(2, 2, "Document non contractuel" , '' , 'C');
}
$page = "3";
// Colonne de droite sur la page 3
if ($y_cell > $taille_fin && $page == "3")
{
$y_cell = 10;
$x_cell = 108;
//récupération de critères
}
}
// d’autre traitement
//
}
if (file_exists($filetmp)) unlink($filetmp);
$pdf->Output();
$pdf->Output($filetmp,"F");
$pdf->closeParsers();
?>