0
我使用TCPDF來打印條碼錶單標籤。 每個標籤都有一個條形碼和一些文字。 Evreything似乎工作正常,但有時文本是漫長的,'入侵'下一個標籤/下一行。在TCPDF中使用GetStringWidth縮短字符串
我試圖檢查字符串的長度 - 並在需要短,如果:
$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]);
}
有什麼建議?謝謝。
您是否檢查過'$ label_w'和'$ text_width'的值以確保它們是好的?邏輯看起來很好,基本上和我做的一樣,但是我縮小了字體大小而不是刪除字符。 – miken32
當然,'$ label_w'在這個例子中是70,'$ text_width'在40-62之間......如果它超過55(= 70-15),錯誤就會發生。 – HaReL