我正在广泛使用TCPDF的Cell方法生成PDF报告。使用Cell方法打印的文本溢出超出方法中指定的宽度。我想只打印适合指定宽度的文本的一部分,但不要溢出或包裹到下一行。我不想要字体拉伸策略。
我搜索了很多但找不到解决方案。有没有其他方法/方法来处理这个? (我使用setfillcolor(255)来实现视觉效果。但文本仍然存在,不可见;当你尝试选择时会显示。)
这是我的代码部分。
$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);
非常感谢。
答案 0 :(得分:5)
我找到了作为TCPDF主要作者的Nicola Asuni的an answer here。用户 fenstra 提供的以下代码对我有用:
// 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的宽度和高度。 / p>