Я создал таблицу с помощью 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++;
Это вне кода, как я могу разбить текст в ячейках.
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
Если вы не можете использовать многоклетку, вы можете попробовать сжать текст, пока он не поместится в ячейке, получив ширину строки.
пример:
//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);
}