나는 똑같은 문제를 겪고; FPDF를 사용하여 송장을 생성하고 첫 번째 셀이 높이가 다른 MultiCell 인 행당 네 개의 셀이 있습니다 (기본 높이는 5이지만 순서 이름이 너무 길면 총 높이가 10이되는 다른 행이 추가됩니다) . 문제는 나머지 3 셀의 높이가 고정되어 있다는 것입니다.
해결책을 찾은 후에는 복잡한 기능을 작성하거나 제 3 자 도구를 사용하는 것이 유일한 방법 인 것 같습니다. 내 앱이 가능한 한 가벼운 것을 원하기 때문에 다음과 같은 접근 방식을 사용하여 내 의견으로는 외부 플러그인보다 간단합니다.
$pdf->SetXY(10,$Y);
$pdf->MultiCell(60,5,$row['Name'],1,1,'L');
I을 다음과 같이 Y의 송장 시작에 대한 자세한 내용과
- 행 = 95 그래서 난 내 while 루프
내 첫 번째 셀 (다중 셀) 전 $Y=95;
를 사용하는 것입니다 FPDF의 GetY() 함수를 사용하여 현재 높이를 가져 와서 H로 저장합니다.
$H = $pdf->GetY();
MultiCell의 높이가 5 인 경우 GetY()는 100을 반환하고, 높이가 10이면 GetY()는 105를 반환합니다.
이 $height= $H-$Y;
결과로 나에게 멀티 셀의 정확한 높이를 제공합니다
나는 새로운 변수 $ 높이를 추가합니다.
나는 현재 위치와 칼럼 높이 설정 $ Y 및 $ 높이 사용
$Y=$H;
: while 루프 세트를 완료하기 전에 $pdf->SetXY(130,$Y);
$pdf->Cell(40,$height,$row['RowName'],1,1,'L');
을 Y $ H의 값을 $ 수득
전체 루프는 다음과 같이 보이며 완벽하게 작동합니다.
$Y= 95;
$query = mysqli_query($con,"SELECT * FROM table");
while($row = mysqli_fetch_array($query)) {
$pdf->SetXY(10,$Y);
$pdf->MultiCell(60,5,$row['ROW1'],1,1,'L');
$H = $pdf->GetY();
$height= $H-$Y;
$pdf->SetXY(70,$Y);
$pdf->Cell(60,$height,$row['ROW2'],1,1,'L');
$pdf->SetXY(130,$Y);
$pdf->Cell(40,$height,$row['ROW3'],1,1,'L');
$pdf->SetXY(170,$Y);
$pdf->Cell(30,$height,$row['ROW4'],1,1,'L');
$Y=$H;
}
각 행에 2 개 이상의 MultiCell 열이있는 경우 까다 롭긴하지만 비슷한 방식으로 해결할 수 있습니다.
정확히 무엇을하고 싶습니까? 당신은 높이가 필요하다고 말하지만 x 좌표를 동적으로 설정하고 폭을 얻고 싶습니까? 셀의 높이를 얻으려면'MultiCell()'의 앞뒤에'getY()'를 호출하십시오. –