gpt4 book ai didi

php - fpdf multicell 没有生成相同的高度

转载 作者:行者123 更新时间:2023-11-28 02:34:36 25 4
gpt4 key购买 nike

我写了下面的代码,它工作正常但是多单元格行高不正常。我写了下面的代码,它工作正常但是多单元格行高不正常。我写了下面的代码,它工作正常但是多单元格行高是无法正常工作。

$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

如何自动调整行高?

最佳答案

所以多单元本质上是高度动态的。您放入函数中的高度是“行”高度。所以发生的事情是 fpdf 开始写入多单元格,假设我们将高度定义为 5,它将创建一个高度为 5 的“单元格”并开始写入。然后它在宽度处遇到硬停止并进入“我必须创建一个新行”,然后它在顶部“单元格”的正下方添加一个高度为 5 的新“单元格”。重复此操作,直到写出所有文本。显然,这对于动态内容非常有用,但也有您遇到的挑战。

我一般走的路径是记录起点,先写出multi cell,再记录终点。然后您可以返回并写入其他单元格以更好地对齐。为此,GetX、GetY、SetX、SetY 将成为您的 friend 。您可以通过简单的数学运算动态设置高度等。

“惰性”选项是重新布局以允许文档缩放,这就是让你的方式太长多单元格并将其放在行下所以你将拥有:
|1 |46 |PR2.......|
|很长的文字这将扩展在这里|
|2 |.......

希望这能帮助您前进!

关于php - fpdf multicell 没有生成相同的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47495480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com