หัวกระดาษคือส่วนที่จะถูกพิมพ์ออกมาโดยอัตโนมัติ ทุกๆครั้งที่มีหน้าใหม่เกิดขึ้น โดยปกติแล้วเราอาจจะใช้พิมพ์ที่อยู่บริษัท หรือไม่ก็ตราบริษัท หรือไม่ก็เป็นหมายเลขหน้า เป็นต้น

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

คำสั่ง Header() นี้ไม่สามารถเรียกใช้ได้โดยตรง (อย่างที่กล่าวไปนั่นแหละ ว่ามันจะเรียกใช้อัตโนมัติ) และในตัว FPDF เองเขาเขียนไว้แค่คำสั่ง (เมธอด) เปล่าๆ

ถ้าท่านต้องการจะตั้งค่าหัวกระดาษท่านจะต้องทำการ สืบทอดคลาส FPDF แล้ว Override คำสั่ง (เมธอด) Header()

เรามาดูวิธีการ

Live Demo

<?php
require('fpdf.php');
 
//ทำการสืบทอดคลาส FPDF ให้เป็นคลาสใหม่
class PDF extends FPDF
{
	//Override คำสั่ง (เมธอด) Header
	function Header(){
 
		//ใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
		$this->SetFont('Arial','I',5);
 
		//พิมพ์ตัวหนังสือตัวเอียงๆ ที่ตำแหน่งเยื้องขอบกระดาษซ้าย 5หน่วย ขอบกระดาษบน 5หน่วย
		$this->Text(5,5,'Created by select2web.com' );
 
		//ปัดบรรทัด กำหนดความกว้างของบรรทัด 20หน่วย
		$this->Ln(20);
	}
 
}
 
//เรียกใช้งาน เราจะเรียกใช้คลาสใหม่ของเราแทน
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
 
for( $i=0;$i<20;$i++ ){
 
	$pdf->Cell(0,10,'select2web #'.$i);
	$pdf->Ln(20);
 
}
 
$pdf->Output();
?>

ถ้าท่านดูที่ Live Demo ท่านจะเห็นว่าเมื่อข้อความเกินหน้ากระดาษ ตัว FPDF จะเรียกใช้คำสั่ง AddPage เพิ่มหน้ากระดาษใหม่เข้าไปให้เราโดยอัตโนมัติ ช่างเป็นอะไรที่น่ารักเสียจริงเชียว

ในบทนี้ท่านได้เห็น OOP เป็นของแถมติดตัวเล็กน้อย สำหรับคนที่ไม่คุ้นเคยกับ OOP ผมขอกล่าวเสริมไว้พอเป็นประมาณ

extends : เป็นคีย์เวิร์ดที่ใช้ในการสืบทอดคลาส การสืบทอดคลาสให้คิดง่ายๆว่า มันก็คือการก้อปปี้คลาสเดิมมาเปลี่ยนชื่อเสียใหม่ นั่นเอง เพียงแต่ว่าการก้อปปี้นั้นจะก้อปปี้แบบอ้างอิง เมื่อคลาสเดิมเพิ่มเติมอะไรใหม่ๆเข้าไป คลาสที่เราสืบทอดมาจากคลาสเดิม จะได้รับสิ่งใหม่ๆไปด้วย เย้… แต่ถ้าเราเพิ่มอะไรๆใหม่กิ๊กๆ เข้าไปในคลาสใหม่ มันจะไม่ส่งผลไปถึงคลาสเดิม

ด้วยพฤติกรรมอย่างเนี้ย พี่หรั่งมันจึง เอาเรื่องของสายเลือด มาปนกับการเขียนโปรแกรมแนวใหม่ OOP คลาสปู่ คลาสแม่ คลาสลูก แล้วก็ยกตัวอย่างว่า จำไว้นะเธอ ถ้าแม่เป็นไวรัสตับอักเสบ ลูกก็จะเป็นด้วย แต่ถ้าลูกดันเป็นเอดส์ขึ้นมาภายหลัง โรคร้ายจะไม่ส่งผลกระทบถึงแม่ นะจ๊ะ…