2016-07-15 3 views
0

데이터베이스의 레코드에서 ID 카드를 만들려고합니다. 사람의 사진이 왼쪽에 있고 옆에있는 스크린 샷과 같이 옆에 인쇄 된 것과 같은 정보 항목이 있습니다. Screenshot of pdf output showing pagination issueRect()를 사용하여 FPDF 자동 페이지 지정

fpdf 셀을 사용하여 페이지 매김을 사용하여 pdfs를 만들 수 있습니다. 하지만 그 목적을 위해 Rect()를 사용하는 것이 작업에 가장 좋을 것이라고 생각했지만 자동 페이지 나누기에는 응답하지 않습니다. 또한 코드에 논리적 인 오류가 있음을 알았지 만 이것이 3 열 출력을 얻을 수있는 유일한 방법입니다. 아래 코드의 오류를 수정하는 데 도움을받을 수있어서 기쁩니다. 고맙습니다!

class PDF extends FPDF { 
    function Header(){ 
     $this->SetFont('Arial', '', 10); 
     $this->Cell(18, 10, '', 0); 
     $this->SetFont('Arial', '', 9); 
     $this->Cell(35, 10, 'Date: '.date('d-m-Y').'', 0); 
     $this->Ln(12); 
     $this->SetFont('Arial', 'B', 11); 
     $this->Cell(70, 8, '', 0); 
     $this->Cell(100, 8, 'LIST', 0); 
     $this->Ln(13); 
    } 

    function Footer(){ 
     $this->SetY(-15); 
     $this->SetFont('Arial','I',8); 
     $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); 
    } 
} 

$pdf = new PDF(); 
$pdf->AliasNbPages(); 
$pdf->AddPage(); 


$staff = mysql_query("SELECT * FROM staff"); 
$item = 0; 
$width = 60; 
$height = 40; 
$x = 15; 
$y = 35; 
$margin = 2; 
while($a_staff = mysql_fetch_array($staff)){ 
    $item = $item+1; 
    for($i = 0; $i < 3; $i++){ 
     $pdf->Rect($x, $y, $width, $height, 'D'); 
     $pdf->Image('images.gif' , $x+$margin ,$y+$margin, 25 , 25); 
     $x = ($x + $width + $margin); 
    } 
    $y = $y + $height + $margin; 
    $x = 15; 
} 

$pdf->Output("report.pdf", "I"); 
?> 
+0

당신은 PHP의'mysql_로 * '기능을 사용하여 학습하거나 새로운 코드를 작성하지 않도록해야한다. 최신 버전에서는 제거되었으며 코드는 앞으로는 작동하지 않습니다. 왜 [PHP에서 mysql_ * 함수를 사용하면 안되나요?] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)를 읽어보십시오. 그들을 대체 할 대상. –

답변

0

추가하려는 콘텐츠의 시작 Y 좌표와 높이를 알고 있으므로 수동으로 페이지 매김을 수행 할 수 있습니다.

$y = $y + $height + $margin; 후, 추가

// replace 20 with whatever margin you need at the bottom of the page 
if ($y + $height > $pdf->h - 20) { 
    $pdf->AddPage(); 
    $y = 35; 
}