【发布时间】:2016-08-01 09:51:04
【问题描述】:
有没有办法在有格式的文本上使用 GetStringWidth?现在,如果我有 Jarod,GetStringWidth 会将标签视为要显示的文本,并返回包括标签在内的字符串宽度。如果我把它们拿出来,那么返回的字符串宽度是针对非粗体文本的,我们知道粗体文本比非格式化文本大,所以我试图弄清楚如何在 TCPDF 中测量格式化文本的宽度。谢谢!
【问题讨论】:
有没有办法在有格式的文本上使用 GetStringWidth?现在,如果我有 Jarod,GetStringWidth 会将标签视为要显示的文本,并返回包括标签在内的字符串宽度。如果我把它们拿出来,那么返回的字符串宽度是针对非粗体文本的,我们知道粗体文本比非格式化文本大,所以我试图弄清楚如何在 TCPDF 中测量格式化文本的宽度。谢谢!
【问题讨论】:
根据TCPDF Doc,您可以向GetStringWidth()函数发送参数,包括字体样式。
在您的示例中:
$text_width = $pdf->GetStringWidth("Text To Be Measured",'','B');
【讨论】:
只要弄清楚这一点。在 TCPDF 中,我们总是使用 SetFont('Times','',12);我们有字体系列或名称的地方,接下来是'',我们可以在其中放置 I 或 B 或 U 等,然后是字体大小。我遇到的 GetStringWith 问题是,当我需要测量粗体时,我使用默认字体设置来测量我的字体。修复:
//Temporarily set the font to Bold.
$pdf->SetFont('Times','B',12);
//Now measure the text that needs to be measured;
$text_width = $pdf->GetStringWidth("Text To Be Measured");
//Now reset the font back to normal so the rest of the document isn't messed up.
$pdf->SetFont('Times','',12);
我希望这对其他人有帮助。
【讨论】: