fpdf多单元不会产生相同的高度

时间:2017-11-26 11:12:28

标签: php css row fpdf

我写下面的代码,它工作正常,但多单元行高度不正常。我写下面的代码,它工作正常但多单元行高度不能正常工作。我写下面的代码,它工作正常但多单元行高是工作不正常。

$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

如何自动调整行高?

1 个答案:

答案 0 :(得分:0)

因此多单元格本质上是动态的高度。你输入函数的高度是" row"高度。所以会发生的事情是fpdf去编写多个单元格,并且我们说我们将高度定义为5,它将创建一个"单元格"高度为5并开始写作。然后它在宽度上击中硬停止并且进入"我必须创建一个新行"然后它添加一个新的"单元"高度5直接位于顶部"单元格#34;这将重复,直到所有文本都被写出。显然,这对于动态内容来说非常棒,但是它有自己的挑战。

我通常采用的路径是记录起点,先写出多格,然后记录停止点。然后,您可以返回并编写其他单元格以实现更好的对齐。对于这个GetX,GetY,SetX,SetY将是你的朋友。您可以使用简单的数学动态设置高度等。

"懒惰"选项是重新进行布局以允许文档扩展,即采用多长的单元格并将其放在行下,这样您就可以了:
| 1 | 46 | PR2 ..... |
|真的很长的文字 这将扩大规模 在这里|
| 2 | ........

希望有助于您前进!