FPDF表格单元格包装

时间:2017-12-08 09:43:36

标签: php pdf fpdf word-wrap

我用FPDF创建了一个表,我想将单词包装在单元格(表格)中。 这是我的代码。

$w = array(7, 150, 40);
$pdf->Cell($w[0], 6, $count, 'LR');
$pdf->Cell($w[1], 6, $column_heading, 'LR');
$pdf->Cell($w[2], 6, $rekey, 'LR', 0, 'R');

$pdf->Ln();
$pdf->Cell(array_sum($w), 0, '', 'T');
$count++;

这是代码的输出,我如何打破单元格中的文本。

enter image description here

2 个答案:

答案 0 :(得分:0)

FPDF分别打印单元格和文本(意味着它就像是2层)

来自手册:http://www.fpdf.org/

Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])

建议方法:

上下文长度应按代码计算,如果内容大于分配的单元格宽度,则应将其划分并转移到新行。

同时应调整单元格高度h(增加高度)。

我记得(fpdf专家可以纠正我)基于内容的单元格自动调整尚未实现为库的功能。

更正:有http://www.fpdf.org/en/doc/multicell.htm

答案 1 :(得分:0)

如果您不能使用多单元,您可以尝试缩小文本,直到它通过获取字符串宽度适合单元格。

示例:

//loop the data
foreach($data as $item){
    $pdf->Cell(10, 5,$item[0],1,0);
    $pdf->Cell(60, 5,$item[1],1,0);

    //shrink font size until it fits the cell width
    while($pdf->getStringWidth($item[2]) > $cellWidth){// loop until the string width is smaller than cell width
        $pdf->SetFontSize($tempFontSize -= 0.1);
    }
    $pdf->Cell($cellWidth,5,$item[2],1,0);
    //reset font size to standard
    $tempFontSize = $fontSize;
    $pdf->SetFontSize($fontSize);

    $pdf->Cell(40,5,$item[3],1,1);
}