我正在广泛使用TCPDF的Cell方法生成PDF报告。使用Cell方法打印的文本溢出超出方法指定的宽度。我只想打印适合指定宽度的大部分文本,但不希望溢出到下一行。我不想字体扩展策略。
I am generating PDF report using TCPDF's Cell method extensively. Text printed with Cell method spills beyond width specified in method. I want to print only as much part of the text that fits in the specified width but not to spill beyond or wrap to next line. I do not want font stretch strategy.
我搜索了很多,但是找不到解决方案。还有其他方法/方式来处理吗? (我使用setfillcolor(255)来实现视觉效果。但是文本仍然在那里,不可见;当您尝试选择时会显示出来。)
I searched a lot but could not find a solution. Is there any other method/way to handle this? (I used setfillcolor(255) to achieve the visual effect. But the text is still there, invisible; gets revealed when you try to select.)
$pdf->SetFillColor(255); // only visual effect $pdf->Cell(36, 0, "A very big text in the first column, getting printed in 3.6cm width", 0, 0, 'L', true); $pdf->Cell(20, 0, "Data 1", 0, 0, 'L', true); $pdf->Cell(20, 0, "Data 2", 0, 0, 'L', true);
非常感谢。
推荐答案我在此处找到答案由TCPDF的主要作者Nicola Asuni撰写。用户 fenstra 提供的以下代码对我有用:
I have found an answer here by Nicola Asuni, who is the main TCPDF author. The following code, provided by user fenstra, is working for me:
// Start clipping. $pdf->StartTransform(); // Draw clipping rectangle to match html cell. $pdf->Rect($x, $y, $w, $h, 'CNZ'); // Output html. $pdf->writeHTMLCell($w, $h, $x, $y, $html); // Stop clipping. $pdf->StopTransform();据我所知,剪切矩形不会考虑显示文本的任何填充,因此,如果需要模仿MultiCell在此特定对象上的行为,可以对Rect的宽度和高度应用适当的数学运算。
As far as I can tell, the clipping rectangle won't consider any padding on the displayed text, so you apply the proper math to Rect's width and height if you need to mimic the behaviour of a MultiCell on this particular.
更多推荐
TCPDF:将文本剪切为单元格宽度
发布评论