2016-07-15 14 views
0

Ich versuche ID-Karten aus den Datensätzen in meiner Datenbank zu erstellen. wo das Foto einer Person auf der linken Seite wäre und Informationen wie von der Seite und unten gedruckt würden, wie im Screenshot unten. Screenshot of pdf output showing pagination issueFPDF AutoPagination mit Rect()

Mit fpdf-Zellen kann ich PDFs mit Paginierung erstellen. Aber für den genannten Zweck dachte ich, dass die Verwendung des Rect() das Beste für die Aufgabe wäre, jedoch nicht auf den Autopage-Bruch reagiert. Ich merke auch, dass es einen logischen Fehler in meinem Code gibt, aber dies ist der einzige Weg, wie ich die 3-Spalten-Ausgabe erhalten könnte. Ich werde froh sein, Hilfe zu erhalten, die Fehler im folgenden Code korrigierend. Vielen Dank!

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

Sie lernen sollten vermeiden oder neuen Code zu schreiben PHP 'mysql_ *' Funktionen. Sie wurden in der neuesten Version entfernt und Ihr Code wird in Zukunft nicht mehr funktionieren. Bitte lesen Sie [Warum sollte ich nicht mysql_ * Funktionen in PHP verwenden?] (Http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) für Informationen über warum und was sie ersetzen sollen. –

Antwort

0

Da Sie die Anfangs-Y-Koordinate und die Höhe des Inhalts, den Sie hinzufügen, kennen, können Sie die Seitennummerierung manuell vornehmen.

Nach $y = $y + $height + $margin; hinzu:

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