【问题标题】:Variable Cell height fpdf可变单元高度 fpdf
【发布时间】: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,因为它非常适合我想要实现的目标 - 谢谢

标签: php pdf fpdf


【解决方案1】:

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

http://basepath.com/PDFbook

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

【讨论】:

  • 我继续做其他事情 - 但下次我遇到这个问题时会回来。谢谢
  • 图书不是免费的,前10页是。
  • 2013 年 1 月免费。
  • 提供指向付费资源的链接并不能回答问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多