在php

时间:2016-03-24 05:06:17

标签: php fpdf

我是初学者,在php中使用fdpf。我已经搜索了很多,但无法找到解决方案

我需要得到像这样的输出

expected output

但我的代码输出是

current output

代码:

$row1a=mysql_fetch_array($sql_1a);
$row1b=mysql_fetch_array($sql_1b);
$row1c=mysql_fetch_array($sql_1c);

$pdf->Cell(6,6," 1 a) ",0,0);
$x = $pdf->GetX();
$y = $pdf->GetY();  
$pdf->MultiCell(150,6,"{$row1a['Question']}",0,1);
$pdf->SetXY($x + 160, $y);
$pdf->Cell(6,6,"{$row1a['Mark']}",0,1);

$pdf->Cell(6,6," b) ",0,0);
$x = $pdf->GetX();
$y = $pdf->GetY();          
$pdf->MultiCell(150,6,"{$row1b['Question']}",0,1);
$pdf->SetXY($x + 160, $y);
$pdf->Cell(6,6,"{$row1b['Mark']}",0,1);

$pdf->Cell(6,6," c) ",0,0);
$x = $pdf->GetX();
$y = $pdf->GetY();  
$pdf->MultiCell(150,6,"{$row1c['Question']}",0,1);
$pdf->SetXY($x + 160, $y);
$pdf->Cell(6,6,"{$row1c['Mark']}",0,1);

其中$ row1a,$ row1b,$ row1c是用于从数据库中获取问题和标记的变量。 由于问题可以是从数据库中获取的可变长度,因此它与下一个问题重叠。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在重叠的行上试试这个:

$height =  round(strlen($row1b['Question']) / 35);
$height = ($height < 1 ? 1 : $height);
$height = $height * 6;

$pdf->MultiCell(150,$height,"{$row1b['Question']}",0,1);

答案 1 :(得分:0)

每次GetY()次呼叫后执行MultiCell()次更新(每次向下推送当前的Y值),并在每次进一步MultiCell()时正确重新计算。