使用FPDF在表中打印不同数量的列

时间:2018-01-15 11:44:48

标签: php pdf-generation fpdf

我想使用FPDF创建一个包含3列和不同行数的表。

这是我使用的当前功能:

function MyTable($header, $data){
$w = array(63, 63, 63);
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],4,$header[$i],1,0,'L');
$this->Ln();


foreach($data as $row)
{
$x=$this->GetX();
$y=$this->GetY();
$push_right = 0;

foreach($row as $col){
$this->Cell($push_right,4,$col,'LR');
$this->Ln();
}
$push_right = $x + 63;
$this->SetXY($push_right,97);
}
$this->Cell(array_sum($w),0,'','T');}

并致电:

$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',16);
$header = array('Alergije','Hronicne bolesti','Rizici');
$data = array(array('Penicilin','Latex'),array('Hipertenzija','Dijabetes','Secer'),array('Rizik 1','Rizik 2','Rizik 3','Rizik 4'));
$pdf->MyTable($header,$data);
$pdf->Output();

目前的输出是这样的: enter image description here

我想这样:

enter image description here

我发现我需要使用SetXY(),但是它没有按预期工作。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

此行$this->SetXY($push_right,97);中的问题您没有设置位置y,这就是文本被覆盖的原因。

尝试这样的事情

$a=25;//set your desired location
$this->SetXY($push_right,$a);
//$a=$a+10; //if you want then increment for your desired location