2012-09-26 11 views
5

एफपीडीएफ में मेरे पास 176 मिमी की चौड़ाई वाला सेल है जहां मुझे क्लाइंट का नाम रखना होगा। समस्या यह है कि क्लाइंट का नाम हमेशा उस निश्चित चौड़ाई में समायोजित नहीं होता है। यदि सेल बहुत अधिक है तो सेल चौड़ाई में सेल ऑटोलोड समायोजित करने का कोई तरीका है?फ़ॉन्ट आकार समायोजित करें एफपीडीएफ

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

मुझे पता है कि TCPDF ऑटो खिंचाव स्थापित करने के लिए एक तरीका है, लेकिन मैं FPDF के लिए किसी भी नहीं मिला है:

इस कोड को मैं अभी होता है। क्या मुझे कोड के साथ ऐसा करना है?

उत्तर

6

खैर, यह पता चला है एक समारोह 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); 
0

कमी अंक के भिन्न भी हो सकता है बेहतर स्तंभ समायोजन, जैसे: $ x- = 0.1; $ X-- के बजाय ;