2014-05-20 4 views
5

Ich erstelle PDF-Berichte mit FPDF. Nun, wie erzeuge ich Seitenzahlen auf jeder Seite eines Berichts am unteren Rand der Seite. Unten finden Sie den Beispielcode zum Generieren einer 2-seitigen PDF-Datei.FPDF Seitennummern auf jeder Seite im Format A4 erhalten.

<?php 
     require('fpdf.php'); 

     $pdf = new FPDF(); 
     $pdf->AliasNbPages(); 
     $pdf->AddPage(); 
     $pdf->SetFont('Arial','',16); 

     $start_x=$pdf->GetX(); 
     $current_y = $pdf->GetY(); 
     $current_x = $pdf->GetX(); 

     $cell_width = 25; $cell_height=14; 
     $j = 20; // This value will be coming from Database so we dont know how many pages the report is going to be 
     for ($i = 0; $i<$j ; $i++){ 
      $pdf->MultiCell($cell_width,$cell_height,'Hello1',1); 
      $current_x+=$cell_width; 
      $pdf->Ln(); 
     } 

     $pdf->Output(); 


     ?> 

Hinweis: Der $ j-Wert wird von der Datenbank kommen, so dass wir nicht wissen, wie viele Seiten der Bericht sein wird.

+0

Mai ein wenig spät, aber mit diesem Code werden Sie nur 1 Seite produzieren. Um weitere Seiten hinzuzufügen, müssen Sie weitere '$ pdf-> AddPage()' may in Ihre 'for'-Schleife einfügen. – Dwza

Antwort

8

Um eine A4-Seite, mit Hochformat, fügen:

$pdf->AddPage("P","A4"); 

eine neue Klasse erstellen, die die FPDF-Klasse erweitert, und die vordefinierten Footer Methode außer Kraft setzen.

Beispiel:

class PDF extends FPDF 
{ 
    function Footer() 
    { 
     // Go to 1.5 cm from bottom 
     $this->SetY(-15); 
     // Select Arial italic 8 
     $this->SetFont('Arial','I',8); 
     // Print centered page number 
     $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); 
    } 
} 
+0

So rufen Sie diese Footer-Methode aus meinem Code auf? Kannst du mir bitte sagen. – Jay

+0

Für den obigen Code habe ich $ pdf = new PDF() hinzugefügt; und es hat für mich funktioniert. Vielen Dank.!! – Jay

+1

Kopf- und Fußzeilenfunktionen müssen nicht separat aufgerufen werden. Wenn Sie FPDF erweitern und dann instanziieren, werden diese automatisch aufgerufen. –

8

Nach meinen Kommentar können Sie

$pdf->PageNo(); 

auf Ihrer Seite platzieren, wo immer Sie möchten. Sie können auch einen Platzhalter auf diese

$pdf->AliasNbPages(); 

hinzufügen Was wie

$pdf->AliasNbPages('{totalPages}'); 

standardmäßig aussehen würde es ist {nb}. Es ist nicht notwendig, einen Platzhalter

hinzuzufügen, als Sie

$pdf->Cell(0, 5, "Page " . $pdf->PageNo() . "/{nb}", 0, 1); 

würde dies produzieren zum Beispiel die pagesum wie

$pdf->Cell(0, 5, "Page " . $pdf->PageNo() . "/{totalPages}", 0, 1); 

oder ohne eigene Platzhalter hinzufügen könnte

Seite 1/10

im Falle gab es 10 Seiten :)

Aber

Mit dem Platzhalter wird vermasseln die Breite der Zelle in Acht nehmen. Wenn Sie z.B. 180 Seitenbreite als 90 ist nicht mehr die Mitte (In der Zeile, wo Sie den Platzhalter verwenden). Sie werden sehen, wenn Sie versuchen :)