2012-09-26 25 views
5

In FPDF ho una cella con una larghezza di 176 mm in cui ho bisogno di mettere un nome cliente. Il problema è che il nome del client non si adatta sempre a quella larghezza fissa. C'è un modo per rendere la dimensione del carattere della cella autoadjust alla larghezza della cella nel caso sia troppo lungo?Regola dimensione carattere FPDF

Questo è il codice che ho in questo momento:

$pdf->Cell(116, 7, utf8_decode($row_or[ 'client_name' ]), 0, 0, 'L'); 

so che TCPDF ha un modo per impostare l'auto-tratto, ma non ho trovato alcuna per FPDF. Devo farlo con il codice?

risposta

6

Bene, si scopre che c'è una funzione chiamata GetStringWidth che riceve una stringa e restituisce la sua larghezza in millimetri, quindi, quello che ho fatto è stato:

/* 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); 
0

la diminuzione può essere frazioni di punto anche per regolazione delle colonne più fine, come: $ x- = 0,1; anziché $ x--;

Problemi correlati