首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCPDF -多细胞细胞高度

TCPDF -多细胞细胞高度
EN

Stack Overflow用户
提问于 2015-12-03 12:44:44
回答 2查看 6.3K关注 0票数 2

我试图在TCPDF中创建发票,但我不能创建表。表格单元格必须有单词包装。我阅读了大量的网站如何做到这一点,但我无法得到正确的。

问题是第二行,我可以把单元格排起来。细胞高度是个问题http://apartman-donat.com/Capture.JPG

这是我的代码:

代码语言:javascript
复制
$pdf->ln(20);
$w = array(10, 80, 15, 25,30,35);
$pdf->SetFillColor(127, 127, 127);
$pdf->SetTextColor(255,255,255);
$pdf->SetDrawColor(127, 127, 127);
$pdf->SetLineWidth(0.3);
$pdf->SetFont($fontname,'',12);
$pdf->Cell($w[0], 10, '#', 1, 0, 'C', 1);
$pdf->Cell($w[1], 10, 'OPIS USLUGE', 1, 0, 'C', 1);
$pdf->Cell($w[2], 10, 'J.mj.', 1, 0, 'C', 1);
$pdf->Cell($w[3], 10, 'Količina', 1, 0, 'C', 1);
$pdf->Cell($w[4], 10, 'Cijena', 1, 0, 'C', 1);
$pdf->Cell($w[5], 10, 'Iznos [Kn]', 1, 0, 'C', 1);
$pdf->ln();
$pdf->SetFillColor(255, 255, 255);
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor(127, 127, 127);
$pdf->SetLineWidth(0.3);
$pdf->SetFont($fontname,'',8);
//$pdf->setFontSpacing(0);
//$pdf->setCellHeightRatio(0.8);
//$pdf->MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $stretch, $ishtml, $autopadding, $valign, $fitcell);
$pdf->MultiCell($w[0], 15, '1', 1, 'C', false, 0, '', '', false, 0, false, false,  15,'T', false);
$pdf->MultiCell($w[1], 15, 'Energetski pregled i izrada energetskog certifikata stana na adresi: Petrova ul. 33, 10000 Zagreb', 1, 'L', false, 0, '', '', false, 0, false, false,  0,'T', false);
$pdf->MultiCell($w[2], 15, 'kom', 1, 'C', false, 0, '', '', false, 0, false, false,  15,'B', false);
$pdf->MultiCell($w[3], 15, '1', 1, 'C', false, 0, '', '', false, 0, false, false, 15,'B', false);
$pdf->MultiCell($w[4], 15, '600.00', 1, 'C', false, 0, '', '', false, 0, false, false,  15,'B', false);
$pdf->MultiCell($w[5], 15, '600.00', 1, 'C', false, 0, '', '', false, 0, false, false, 15,'B', false);

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-08 03:50:51

首先,您需要根据您的MultiCell大小设置来设置/估计在您的width函数中每行最多可以显示多少字符。例如,刚才说了大约48个字符。

代码语言:javascript
复制
$textlength = strlen('Energetski pregled i izrada energetskog certifikata stana na adresi: Petrova ul. 33, 10000 Zagreb');

$rowheight = 15;
if ($textlength > 48){ // alocate as you need
  if ($textlength > 144){
    $rowheight = $rowheight *4;
  } else if ($textlength > 96){
    $rowheight = $rowheight *3;
  } else {
    $rowheight = $rowheight *2;
  }
}


    $pdf->MultiCell($w[0], $rowheight, '1', 1, 'C', false, 0, '', '', false, 0, false, false,  15,'T', false);
    $pdf->MultiCell($w[1], 15, 'Energetski pregled i izrada energetskog certifikata stana na adresi: Petrova ul. 33, 10000 Zagreb', 1, 'L', false, 0, '', '', false, 0, false, false,  0,'T', false);
    $pdf->MultiCell($w[2], $rowheight, 'kom', 1, 'C', false, 0, '', '', false, 0, false, false,  15,'B', false);
    $pdf->MultiCell($w[3], $rowheight, '1', 1, 'C', false, 0, '', '', false, 0, false, false, 15,'B', false);
    $pdf->MultiCell($w[4], $rowheight, '600.00', 1, 'C', false, 0, '', '', false, 0, false, false,  15,'B', false);
    $pdf->MultiCell($w[5], $rowheight, '600.00', 1, 'C', false, 0, '', '', false, 0, false, false, 15,'B', false);
票数 5
EN

Stack Overflow用户

发布于 2020-06-24 17:13:21

有一个函数getNumLines(),它允许计算特定宽度所需的行数:

代码语言:javascript
复制
$numberOfLines = $pdf->getNumLines($text, $width);

您可以使用它来计算每一行的高度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34066451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档