可变单元高度fpdf

时间:2012-11-04 13:21:27

标签: php pdf fpdf

我正在创建一个pdf生成页面,其中有一张表用于开发票,我正在使用FPDF。

我正在尝试更改每行的单元格高度,以根据第一列$column_item_name的高度而变化。这样做的原因是我可以将项目描述添加到与名称相同的字段中,并且不会丢弃其余的行。

我想我理解这个概念。单元格的GetY,设置为变量,使用变量作为高度,但是我似乎缺少一些东西,因为还没有设法让它工作。不幸的是我不得不回滚所以没有我试过的副本。

表的当前代码:

//First create each Field Name
//Gray color filling each Field Name box
$pdf->SetFillColor(232,232,232);
//Bold Font for Field Name
$pdf->SetFont('Arial','B',11);
$pdf->SetY($Y_Fields_Name_position);
$pdf->SetX(10);
$pdf->Cell(100,6,'Description',1,0,'L',1);
$pdf->SetX(110);
$pdf->Cell(30,6,'Rate',1,0,'L',1);
$pdf->SetX(140);
$pdf->Cell(30,6,'Quantity',1,0,'R',1);
$pdf->SetX(170);
$pdf->Cell(30,6,'Price',1,0,'R',1);
$pdf->Ln();


//Now show the 4 columns
$pdf->SetFont('Arial','',10);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(10);
$pdf->MultiCell(100,6,$column_item_name,1);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(110);
$pdf->MultiCell(30,6,$column_unit_price,1,'R');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(140);
$pdf->MultiCell(30,6,$column_quantity,1,'R');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(170);
$pdf->MultiCell(30,6,$column_total_price,1,'R');
$pdf->SetX(140);
$pdf->MultiCell(30,6,'Total (exc VAT)',1,'R');
$pdf->SetY($Y_Table_Position + ($number_of_products * 6));
$pdf->SetX(170);
$pdf->MultiCell(30,6,'£ '.$total,1,'R');
$pdf->SetX(140);
$pdf->MultiCell(30,6,$vat3,1,'R');
$pdf->SetY($Y_Table_Position + (($number_of_products + 1) * 6));
$pdf->SetX(170);
$pdf->MultiCell(30,6,'£ '.$vat2,1,'R');
$pdf->SetX(140);
$pdf->MultiCell(30,6,'Total (inc VAT)',1,'R');
$pdf->SetY($Y_Table_Position + (($number_of_products + 2) * 6));
$pdf->SetX(170);
$pdf->MultiCell(30,6,'£ '.$total_inc_vat,1,'R');

非常感谢任何建议。

亲切的问候,

n00bstacker

1 个答案:

答案 0 :(得分:-3)

fpdf.org网站上有几个脚本可以处理表中的可变高度行。我在 free (不再免费)的书中收集了标题为“Tables”的章节中的主要方法:

http://basepath.com/PDFbook

如果您希望第一列建立行高,而不是最高列,那么这是我在那里提供的RowX函数的简单变体。