6

FPDF には、幅 176 mm のセルがあり、クライアント名を入力する必要があります。問題は、クライアント名が常にその固定幅に調整されないことです。セルが長すぎる場合に、セルのフォント サイズをセル幅に自動調整する方法はありますか?

これは私が今持っているコードです:

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

TCPDF には自動ストレッチを設定する方法があることは知っていますが、FPDF の方法は見つかりませんでした。コードで行う必要がありますか?

4

2 に答える 2

11

さて、文字列を受け取り、その幅をミリメートル単位で返す 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 );
于 2012-09-26T22:44:19.617 に答える