【发布时间】:2012-11-04 13:21:27
【问题描述】:
我正在创建一个带有用于开票的表格的 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
【问题讨论】:
-
假设这不是完整的代码是否正确?据我所知,使用 MultiCell,您需要定义宽度和高度 - 就像您已经完成的那样。你有看过 wkhtml2pdf (code.google.com/p/wkhtmltopdf) 吗?制作表格真的很容易(或任何其他呈现为网页的东西)。
-
正确的只是具体的表格代码。我想继续使用 FPDF,因为它非常适合我想要实现的目标 - 谢谢