2017-06-21 1 views
0

J'essaie de générer une table en fpdf avec du contenu dynamique. Le problème est dans la ligne $pdf->MultiCell(50,10,$d2['shade'],'LRB',1);. Cette cellule contient beaucoup de contenu . Ainsi, lorsque la hauteur de cette cellule est augmentée, la hauteur des autres cellules reste la même. Comment l'ajuster en conséquence?FPDF- Comment ajuster d'autres multicells si une multicellule est affectée?

$sql3 = "SELECT `materialDesc`,`chart`,`materialSize`,`remarks`, GROUP_CONCAT(shade SEPARATOR ',')shade, GROUP_CONCAT(shade SEPARATOR ',')shade SUM(quantity)quantity FROM `" . $DB->pre . "order_detail` WHERE `orderID`= '$orderID' GROUP BY `materialSize`, `materialDesc`,`chart`,`remarks` "; 
$rows3 = $DB->dbRows($sql3); 


if ($DB->numRows > 0){ 

    $pdf->SetLineWidth(0); 
    $pdf->SetFont('Arial','',10); 
    $newL=90;   ////fixed cell spaced in y-axis for quantity 
     foreach ($rows3 as $d2) { 

$pdf->SetXY(11,$newL); 
$pdf->MultiCell(30,10,$d2['materialDesc'],'LRB',1); 
$pdf->SetXY(41,$newL); 
$pdf->MultiCell(13,10,$d2['chart'],'LRB',1); 
$pdf->SetXY(54,$newL); 
$pdf->MultiCell(50,10,$d2['shade'],'LRB',1); /////line with the problem///// 
$pdf->SetXY(104,$newL); 
$pdf->MultiCell(13,10,$d2['materialSize'],'LRB',1); 
$pdf->SetXY(117,$newL); 
$pdf->MultiCell(12,10,$d2['quantity'],'LRB',1); 
$pdf->SetXY(129,$newL); 
$pdf->MultiCell(15,10,'ROL','LRB',1); 
$pdf->SetXY(144,$newL); 
$pdf->MultiCell(18,10,'OPEN','LRB',1); 
$pdf->SetXY(162,$newL); 
$pdf->MultiCell(35,10,$d2['remarks'],'LRB',1); 
$newL += 7; 
            }  
          } 
       $pdf-> Ln(); 
+0

vous devriez jeter un oeil à l'addon MC_TABLE pour FPDF, il est fait exactement dans ce but, il calcule les lignes nécessaires pour une cellule et modifie la hauteur de la rangée entière. http://openhomeo.org/doc/en/apigen/source-class-PDF_MC_Table.html#16-231 – FMashiro

+0

Je ne reçois pas comment le faire homme. Je n'ai pas beaucoup d'expérience avec FPDF. –

Répondre

0

Vous pouvez trouver la méthode NbLines() dans this script, qui vous permet d'effectuer une pré-calculé les lignes nécessaires d'un multicellulaire. Avec cette information, vous pouvez utiliser MultiCell tout au long, mais vous devez dessiner les frontières vous-même (comme vous pouvez également le voir dans le lien ci-dessus).