PHP FPDF Многоуровневая регулировка высоты нескольких ячеек - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь настроить высоту моего многоклеточного и других ячеек на максимальную высоту многоклеточного. enter image description here

вот так выглядит мой pdf, используя приведенный ниже код. единственная проблема в том, что я не могу настроить столбец описания так, чтобы он соответствовал максимальному значению MULTICELL, которое является ПОДКОДОМ. И SUBCODE, и DESCRIPTION являются MULTICELL, остальные - простые ячейки.

$h1 = $pdf->GetMultiCellHeight(85, 5, $r->subdesc, $border=null, $align='J');
$h2 = $pdf->GetMultiCellHeight(35, 5, $r->subcode, $border=null, $align='J');
$height = ($h1 > $h2) ? $h1 : $h2;

                $pdf->Cell(20,$height,$r->section,1,0,'L');
                $pdf->Cell(15,$height,$r->code,1,0,'L');
                $subcode = ($r->wga == 1) ? '*'.$r->subcode : $r->subcode;

                $x = $pdf->GetX();
                $y = $pdf->GetY();
                $pdf->MultiCell(35, 5, iconv("UTF-8", "ISO-8859-1", $r->subcode), 1);
                $pdf->SetXY($x + 35, $y);

                $x = $pdf->GetX();
                $y = $pdf->GetY();
                $pdf->MultiCell(85, 5, iconv("UTF-8", "ISO-8859-1", $r->subdesc), 1,'L', false);
                $pdf->SetXY($x + 85, $y);

                $pdf->Cell(10,$height,$r->units,1,0,'C');
                $pdf->Cell(10,$height,$r->grade,1,0,'C');
                $pdf->Cell(20,$height,$r->remark,1,0,'C');
                $pdf->Ln();

1 Ответ

0 голосов
/ 05 сентября 2018

Два подхода: 1. Нарисуйте пустую ячейку с нижней границей (с правильной высотой) и многоклетками без нижней границы

$x = $pdf->GetX();
$y = $pdf->GetY();              
$pdf->Cell(195, $height, "", 1, 0, 'B');
$pdf->SetXY($x, $y);
$pdf->Cell(20,$height,$section,1,0,'L');
$pdf->Cell(15,$height,$code,1,0,'L');
$subcode = ($wga == 1) ? '*'.$subcode : $subcode;
$x = $pdf->GetX();
$y = $pdf->GetY();
$pdf->MultiCell(35, 5, iconv("UTF-8", "ISO-8859-1", $subcode), 'L,T,R');

2. Четные многоклеточные линии:

$height = ($h1 > $h2) ? $h1 : $h2;
$subcode = ($wga == 1) ? '*'.$subcode : $subcode; //have to be done here
if($h1<$height){
  for($i=$h1; $i<=$height; $i++)
  $subdesc .= "\n";
}elseif($h2<$height){
  for($i=$h2; $i<=$height; $i++)
  $subcode .= "\n";
}
...