2015-01-13 2 views
0

나는FPDF 다중 셀 테이블에 문제가 있습니까?

enter image description here

에서

그게 그렇게 추한, 테이블 잘못된 정렬 위치. 누군가가 도움이 될 수 있습니다 .... 자동차에 문제가 멀티 셀 FPDF에게

$pdf=new PDF('P','cm','A4'); 
$pdf->Open(); 
$pdf->AliasNbPages(); 
$pdf->AddPage(); 
$pdf->SetMargins(1.5,1,1.5); 
$pdf->SetFont('Times','',12); 

$x=$pdf->GetY(); 
$pdf->SetY($x+1); 
$pdf->SetFont('Times','B',12); 
$pdf->Cell(1,0.5,'#',1,0,'L'); 
$pdf->Cell(4,0.5,'Name',1,0,'L'); 
$pdf->Cell(4,0.5,'Blabla',1,0,'L'); 
$pdf->Cell(4,0.5,'Blabla',1,0,'L'); 

//query dan arraying 
$sql ="SELECT * FROM `tb_unknown`"; 
$query = mysql_query($sql); 
$i = 1; 

while($result= mysql_fetch_array($query)){ 
    $pdf->Ln(); 
    $name = $result['name']; 
    $blabla1 = $result['blabla1']; 
    $blabla2 = $result['blabla2']; 
    $pdf->SetFont('Times','',12); 
    $pdf->MultiCell(1, 0.5, $i, 1, 'L'); 
    $pdf->MultiCell(4, 0.5, $name, 1, 'L'); 
    $pdf->MultiCell(4, 0.5, $blabla1, 1, 'L'); 
    $pdf->MultiCell(4, 0.5, $blabla2, 1, 'L'); 
    $i++; 
} 
$pdf->Output("report.pdf", "I"); 

를 입력하고이 내 결과가 나는 그것을 고치려고했다 ... ...

답변

3

이 사람은 나를 얼마 동안 괴롭혔다. 그리고 나는 이것에 대한 해결책을 찾았다. link.

멀티 셀을 인쇄하기 전에 X 좌표와 Y 좌표를 가져와 인쇄 한 직후에 SetXY 기능을 사용하여 두 좌표를 모두 설정하는 것이 좋습니다.

또한 행의 가장 높은 셀 높이를 결정한 다음 각 행 끝에 SetY를 사용하여 적절한 Y 좌표로 이동해야합니다.

코드는 다음과 같아야합니다

$name = $result['name']; 
$blabla1 = $result['blabla1']; 
$blabla2 = $result['blabla2']; 
$pdf->SetFont('Times','',12); 

while($result= mysql_fetch_array($query)) { 
    $current_y = $pdf->GetY(); 
    $current_x = $pdf->GetX(); 
    $pdf->MultiCell(1, 0.5, $i, 1, 'L'); 
    $end_y = $pdf->GetY(); 

    $current_x = $current_x + 1; 
    $pdf->SetXY($current_x, $current_y); 
    $pdf->MultiCell(4, 0.5, $name, 1, 'L'); 
    $end_y = ($pdf->GetY() > $end_y)?$pdf->GetY() : $end_y; 

    $current_x = $current_x + 4; 
    $pdf->SetXY($current_x, $current_y); 
    $pdf->MultiCell(4, 0.5, $blabla1, 1, 'L'); 
    $end_y = ($pdf->GetY() > $end_y)?$pdf->GetY() : $end_y; 

    $current_x = $current_x + 4; 
    $pdf->SetXY($current_x, $current_y); 
    $pdf->MultiCell(4, 0.5, $blabla2, 1, 'L'); 
    $end_y = ($pdf->GetY() > $end_y)?$pdf->GetY() : $end_y; 
    $i++; 
    $pdf->SetY($end_y); 
}