2016-11-05 13 views
1

FPDF内のセルテーブル内に文字列を簡単にラップする方法はありますか?私は答えのカップルを見つけたが、彼らは少しハードコードされて見える。私は自分のデータベースからデータを取得しているので、動的にそれを必要とします。FPDF内のセルテーブル内のFPDF折り返しテキスト

ここまでの進捗状況を示す画像です。テキストが重なっているので、必要に応じて細胞の高さを伸ばす必要があります。

enter image description here

サンプルコード

$row_height = 6; 
$header = 35; 
$y_axis = $header + $row_height; 

while($row = mysqli_fetch_assoc($result)) { 
    $col1= $row['col1']; 
    $col2= $row['col2']; 
    $col3= $row['col3']; 

    if ($y_axis >= 275) { // new page 
     $pdf->AddPage(); 
     tableHeader($pdf); 
     $y_axis = $header + $row_height; 
    } 

    //List of items 
    $pdf->SetFont('Arial','',8); 
    $pdf->SetY($y_axis); 
    $pdf->SetX(10); 

    $pdf->MultiCell(40,$row_height,$col1,1); 
    $pdf->SetY($y_axis); 
    $pdf->SetX(50); 
    $pdf->MultiCell(60,$row_height,$col2,1); 
    $pdf->SetY($y_axis); 
    $pdf->SetX(110); 
    $pdf->MultiCell(90,$row_height,$col3,1); 

    $y_axis = $y_axis + $row_height; 
} 
+0

進捗状況のスクリーンショットを記述し、ハードコードされたソリューションがこのような場合に有用でない理由を説明します。 – iblamefish

+0

投稿コードも同様に、最初のセルの後に新しい行を作成する必要があります。$ pdf-> Ln(30); –

+0

@iblamefishデータベースからデータを取得しているため、セルの行の高さが自動的に調整されるためです –

答えて

1

はたぶんFPDFのMultiCell方法は、あなたのニーズに適合します。

この方法では、テキストを改行で印刷することができます。自動的に(テキストがセルの右端に達するとすぐに)または明示的に(\n文字を介して)入力することができます。必要な数の細胞が出力され、一方が他方よりも下に出力されます。 テキストを整列、中央揃え、または揃えることができます。セルブロックはフレーム化され、背景がペイントされます。