在FPDF中,我有一個寬度爲176mm的單元格,我需要放置一個客戶端名稱。問題是客戶端名稱不會始終調整爲固定寬度。有沒有辦法讓單元格的字體大小自動調整到單元格寬度,以防過長?調整字體大小FPDF
這是我現在所擁有的代碼:
$pdf->Cell(116, 7, utf8_decode($row_or[ 'client_name' ]), 0, 0, 'L');
我知道TCPDF有一個方法來設置自動拉伸,但我還沒有發現任何對FPDF。我必須用代碼來完成嗎?
在FPDF中,我有一個寬度爲176mm的單元格,我需要放置一個客戶端名稱。問題是客戶端名稱不會始終調整爲固定寬度。有沒有辦法讓單元格的字體大小自動調整到單元格寬度,以防過長?調整字體大小FPDF
這是我現在所擁有的代碼:
$pdf->Cell(116, 7, utf8_decode($row_or[ 'client_name' ]), 0, 0, 'L');
我知道TCPDF有一個方法來設置自動拉伸,但我還沒有發現任何對FPDF。我必須用代碼來完成嗎?
嗯,事實證明,有一個叫GetStringWidth接收一個字符串,並返回在milimeters其寬度的功能,所以,我所做的就是:
/* 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);
的下降可以分的分數太多了更精細的列調整,如: $ x- = 0.1; 而不是$ x--;