我正在使用TCPDF打印条形码表标签。 每个标签都有条形码,下面有一些文字。 Evreything似乎工作正常,但有时文本会长并“侵入”下一个标签/下一行。
我正在尝试检查字符串的长度 - 如果需要,请将其缩短:
$label_w = ($page_w-$right_mar-$left_mar)/$Col;
$text_width = $pdf->GetStringWidth($exploded_line[2]);
while ($text_width>$label_w-15) // "-15" because the text location
{
$exploded_line[2]=substr($exploded_line[2],0,-1);
$text_width = $pdf->GetStringWidth($exploded_line[2]);
}
进入循环的文字只会继续缩小,直到只剩下第一个字母 ...
起初我认为问题是我的While
条件由于某种原因没有停止。
然后我尝试将其更改为简单的if
- 但问题并没有消失......
if ($text_width>$label_w-15)
{
$exploded_line[2]=substr($exploded_line[2],0,-1);
$text_width = $pdf->GetStringWidth($exploded_line[2]);
}
有什么建议吗?感谢。
答案 0 :(得分:1)
substr
函数中。我使用的是UTF-8,所以我不得不使用mb_substr
...
$exploded_line[2]=mb_substr($exploded_line[2],0,-1,"utf-8");
这是按预期工作的。 不管怎样,谢谢。