2017-11-26 11 views
0

私は以下のコードを書いていますが、うまく動作していますが、マルチセルの行の高さは正常に動作していません。うまく動作しますが、マルチセル行の高さは正しく機能していません。fpdf multicellは同じ高さを生成していません

$x=$pdf->GetY(); 
$pdf->SetY($x+1); 

include_once("config.php"); 
$result = mysqli_query($mysqli, "SELECT * FROM prd"); // using mysqli_query instead 
$i = 1; 
while($res = mysqli_fetch_array($result)) 
{ 

$current_y = $pdf->GetY(); 
    $current_x = $pdf->GetX(); 

    $pdf->MultiCell(30, 5, $i, 1, 'L'); 
    $end_y = $pdf->GetY(); 
$prdid = $res[0]; 
     $empid = $res[1]; 
     $specification = $res[2]; 
$prn = $res[3]; 



$current_x = $current_x + 30; 
    $pdf->SetXY($current_x, $current_y); 
    $pdf->MultiCell(30, 5, $empid, 1, 'L'); 
    $end_y = ($pdf->GetY() > $end_y)?$pdf->GetY() : $end_y; 

$current_x = $current_x + 30; 
    $pdf->SetXY($current_x, $current_y); 
    $pdf->MultiCell(30, 5, $specification, 1, 'L'); 
    $end_y = ($pdf->GetY() > $end_y)?$pdf->GetY() : $end_y; 

$current_x = $current_x + 30; 
    $pdf->SetXY($current_x, $current_y); 
    $pdf->MultiCell(30, 5, $prn, 1, 'L'); 
    $end_y = ($pdf->GetY() > $end_y)?$pdf->GetY() : $end_y; 


$i++; 
    $pdf->SetY($end_y); 

     } 
$pdf->Output(); 
?> 

マイ結果:

To see my result click here

がどのように自動的に行の高さを調整するには?

答えて

0

したがって、マルチセルは本質的にダイナミックな高さです。関数に入れた高さは「行」高さです。だから、fpdfがマルチセルを書いて、高さを5と定義したとしましょう。それは高さ5の "セル"を作成し、書き始めます。それから幅のハードストップに当たって、「新しい行を作成する必要があります」と進み、高さ5の新しい「セル」を最上部の「セル」のすぐ下に追加します。これは、すべてのテキストが書き出されるまで繰り返されます。明らかに、これは動的なコンテンツには最適ですが、あなたが当てた独自の課題があります。

私が通常取るパスは、開始点を記録し、マルチセルを最初に書き出し、次に停止点を記録することです。その後、他のセルに戻って書き込んで、より整列させることができます。このGetXのために、GetY、SetX、SetYはあなたの友人になります。簡単な計算で高さなどを動的に設定できます。

「レイジー」オプションは、ドキュメントを拡大縮小するためにレイアウトを再作成することです。長すぎるマルチセルを行にして行の下に置くことです。
| 1 | 46 | PR2 ..... |
|本当に長いテキスト スケールする ここをクリック|
| 2 | ........

あなたが前進するのを助ける希望!

関連する問題