2012-09-26 46 views
5

En FPDF tengo una celda con un ancho de 176 mm donde necesito poner un nombre de cliente. El problema es que el nombre del cliente no siempre se ajusta a ese ancho fijo. ¿Hay alguna manera de hacer que el tamaño de fuente de la celda se ajuste automáticamente al ancho de la celda en caso de que sea demasiado largo?Ajustar el tamaño de fuente FPDF

Este es el código que tengo en este momento:

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

sé que TCPDF tiene una manera de establecer el auto-estiramiento, pero no he encontrado ninguna de FPDF. ¿Tengo que hacerlo con el código?

Respuesta

6

Bueno, resulta que hay una función llamada GetStringWidth que recibe una cadena y devuelve su anchura en milímetros, por lo que, lo que hice fue:

/* 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 disminución puede ser fracciones de puntos también por ajuste de columnas más finas, como: $ x- = 0.1; en lugar de $ x--;

Cuestiones relacionadas