เวลาเราพิมพ์เอกสารหลายๆหน้า เราก็มักจะมีหมายเลขหน้าและจำนวนหน้าทั้งหมด กำกับไว้ด้วยเสมอ เพื่อจะได้รู้ว่าเอกสารทั้งหมดมีกี่หน้า และปัจจุบันกำลังดูหน้าที่เท่าไร

คำสั่งที่เกี่ยวข้องกับเลขหน้าของ FPDF นั้นมี 2 คำสั่ง คือ

  • AliasNbPages
  • PageNo

AliasNbPages([string alias])

คำอธิบาย

เป็นคำสั่งสำหรับ กำหนดตัวแปรที่เราต้องการให้เก็บ จำนวนหน้าทั้งหมดของเอกสาร จะได้นำไปพิมพ์บนหน้าเอกสารได้ (ผมไม่เข้าใจว่าทำไมต้องใช้คำสั่ง ทั้งที่จริงถ้าผู้สร้าง FPDF กำหนดตัวแปรสักตัว เก็บไว้ น่าจะง่ายกว่า) โดยคำสั่งนี้ให้เรียกใช้ก่อนสร้างหน้าใหม่ด้วยคำสั่ง AddPage

พารามิเตอร์

alias : (string) ชื่อตัวแปรที่เราต้องการให้เก็บจำนวนหน้าทั้งหมดไว้ โดยมีค่าดีฟอลต์คือ {nb}

PageNo()

คำอธิบาย

คืนค่าตัวเลขหน้าปัจจุบันกลับมา

ตัวอย่างการใช้งาน

Live Demo
เลื่อนลงที่ดูที่ท้ายกระดาษนะครับ

<?php
require('fpdf.php');
 
//ทำการสืบทอดคลาส FPDF ให้เป็นคลาสใหม่
class PDF extends FPDF
{
	//Override คำสั่ง (เมธอด) Footer
	function Footer()	{
 
		//นับจากขอบกระดาษด้านล่างขึ้นมา 10 มม.
		$this->SetY( -10 );
 
		//กำหนดใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
		$this->SetFont('Arial','I',5);
 
		$this->Cell(0,10, 'Create by www.select2web.com' ,0,0,'L');
 
		//พิมพ์ หมายเลขหน้า ตรงมุมขวาล่าง
		$this->Cell(0,10, 'page '.$this->PageNo().' of  tp' ,0,0,'R');
 
	}
 
}
 
//เรียกใช้งาน เราจะเรียกใช้คลาสใหม่ของเราแทน
$pdf=new PDF();
$pdf->AliasNbPages( 'tp' );
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
 
for( $i=0;$i<20;$i++ ){
 
	$pdf->Cell(0,10,'Overcome evil by virtue. '.$i);
	$pdf->Ln(20);
 
}
 
$pdf->Output();
?>
$this->Cell(0,10, 'page '.$this->PageNo().' of  tp' ,0,0,'R');

ท่านจะเห็นว่า tp จะพิมพ์จำนวนหน้าทั้งหมดออกมา