TCPDF MultiCell () размещает содержимое как положено, рисует границу над предыдущей ячейкой - PullRequest
0 голосов
/ 17 мая 2018

У меня есть этот блок, который создает набор TCPDF MultiCell() s в многоколоночном pdf.

$TColW0 = 29;
$DColW0 = 37;
$mbh = $pdf->getStringHeight($DColW0, $reqHeader['partPackingInfo'], false, true, '', 1);
$pdf->MultiCell($TColW0, $mbh, 'Packaging Details:', 1, 'R', '', 0, '', '', true, 0, false, false, '', 'M', false);
$pdf->MultiCell($DColW0, $mbh, $reqHeader['partPackingInfo'], 1, 'L', '', 1, '', '', true, 0, false, false, '', 'M', false);
  • Первая строка использует встроенную функцию TCPDF для получения высоты многострочной строкии устанавливает переменную $mbh, чтобы позже установить обе ячейки на одинаковую высоту.
  • Переменные $DColW0 и $TColW0 предварительно определены и задают ширину столбцов.

Моя проблемарезультат выглядит следующим образом:

TCPDF Multiline Issue

Я попытался использовать ширину столбца заголовка в значении x ячейки данных, но это просто сдвигаетсодержимое выходит за пределы столбца.

Содержимое выглядит в нужном месте, а граница для ячейки данных нарисована не в том месте.Есть ли настройка или что-то, чего мне не хватает, когда дело доходит до MultiCell() границ?Любая помощь / предложения приветствуются.


Обновление блока для использования SetX

$TColW0 = 29;
$DColW0 = 37;
$mbh = $pdf->getStringHeight($DColW0, $reqHeader['partPackingInfo'], false, true, '', 1);
$pdf->MultiCell($TColW0, $mbh, 'Packaging Details:', 1, 'R', '', 0, '', '', true, 0, false, false, '', 'M', false);
$pdf->SetX($TColW0);
$pdf->MultiCell($DColW0, $mbh, $reqHeader['partPackingInfo'], 1, 'L', '', 1, '', '', true, 0, false, false, '', 'M', false);

Смещает содержимое независимо от того, где нарисована граница.SETX Example


Использование спецификации x внутри MultiCell()

$TColW0 = 29;
$DColW0 = 37;
$mbh = $pdf->getStringHeight($DColW0, $reqHeader['partPackingInfo'], false, true, '', 1);
$pdf->MultiCell($TColW0, $mbh, 'Packaging Details:', 1, 'R', '', 0, '', '', true, 0, false, false, '', 'M', false);
$pdf->MultiCell($DColW0, $mbh, $reqHeader['partPackingInfo'], 1, 'L', '', 1, $TColW0, '', true, 0, false, false, '', 'M', false);

enter image description here

Снова содержимое сдвигается, граница рисуется поверх предыдущей ячейки.

Документация MultiCell ().


Результат с включенной заливкой ячейки.

$TColW0 = 29;
$DColW0 = 37;
$mbh = $pdf->getStringHeight($DColW0, $reqHeader['partPackingInfo'], false, true, '', 1);
$pdf->MultiCell($TColW0, $mbh, 'Packaging Details:', 1, 'R', 1, 0, '', '', true, 0, false, false, '', 'M', false);
$pdf->MultiCell($DColW0, $mbh, $reqHeader['partPackingInfo'], 1, 'L', 1, 1, '', '', true, 0, false, false, '', 'M', false);

FillExample

Включение заливки закрашивает все ранее нарисованные границы для этой строки, за исключением границы для последней ячейки.Содержимое обеих ячеек все еще находится в ожидаемой позиции, граница рисуется в ожидаемом размере, но рисуется в неправильной позиции.


Параметры для Multicell;

MultiCell( $w, $h, $txt, $border = 0, $align = 'J', $fill = false, $ln = 1, $x = '', $y = '', $reseth = true, $stretch = 0, $ishtml = false, $autopadding = true, $maxh = 0, $valign = 'T', $fitcell = false )
...