在FPDF中,我有一个宽度为176mm的单元格,我需要输入一个客户端名称.问题是客户端名称始终不会调整到该固定宽度.有没有办法让单元格的字体大小自动调整到单元格宽度,以防它太长?
这是我现在的代码:
$pdf->Cell( 116, 7, utf8_decode( $row_or[ 'client_name' ] ), 0, 0, 'L' );
Run Code Online (Sandbox Code Playgroud)
我知道TCPDF有一种设置自动拉伸的方法,但我没有找到任何FPDF.我必须用代码吗?
好吧,事实证明有一个名为GetStringWidth的函数接收一个字符串并以毫米为单位返回它的宽度,所以,我做的是:
/* I know that the font size starts with 11, so i set a variable at this size */
$x = 11; // Will hold the font size
/* I will cycle decreasing the font size until it's width is lower than the max width */
while( $pdf->GetStringWidth( utf8_decode( $row_or[ 'client_name' ] ) ) > 116 ){
$x--; // Decrease the variable which holds the font size
$pdf->SetFont( 'Trebuchet', 'B', $x ); // Set the new font size
}
/* Output the string at the required font size */
$pdf->Cell( 116, 7, utf8_decode( $row_or[ 'client_name' ] ) ), 0, 0, 'L' );
/* Return the font size to it? original */
$pdf->SetFont( 'Trebuchet', 'B', 11 );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9914 次 |
| 最近记录: |