如何在TCPDF中计算MultiCell/writeHTMLCell的高度?

2022-08-30 23:53:47

我尝试创建具有多个页面的PDF,并且需要提前计算每个元素(MultiCell)的高度,以便为分页符做准备。根据文档,有几个功能,如GetCharWidth / GetStringWidth,以支持我自己做这件事,但除了潜在的性能损失之外,我可能不会做正确的事情。以更优雅的方式实现我的目标的建议?

参考: TCPDF


答案 1

我明白了:D!!!!!

创建另一个 pdf2 对象

// pdf2 set x margin to pdf1's xmargin, but y margin to zero
// to make sure that pdf2 has identical settings, you can clone the object (after initializing the main pdf object)
$pdf2 = clone $pdf;
pdf2->addpage
pdf2->writeCell
$height = pdf2->getY()
pdf2->deletePage(pdf2->getPage())
pdf1->checkPageBreak($height);
pdf1->writeCell()

W00tness :D


答案 2

这是一个古老的问题,但是当前版本(截至2011年12月7日)的TCPDF有一个名为getStringHeight的函数,允许您在实际调用MultiCell之前计算传递给MultiCell的字符串的最终高度。然后,此高度可用于各种事情,原始问题中的计算,以及制作表格时设置行高等。效果很好。

只是一些信息,以防其他人像我一样偶然发现这个问题,寻找这个问题的解决方案。


推荐