ท้ายกระดาษคือส่วนที่จะถูกพิมพ์ออกมาโดยอัตโนมัติ ทุกๆครั้งที่สิ้นสุดหน้ากระดาษ เราอาจจะใช้พื้นที่ส่วนนี้พิมพ์ เลขหน้า ที่อยู่บริษัท หรือ copy right หรืออื่นๆใด ตามที่ท่านเห็นว่าอยากจะให้มันมีในทุกๆหน้าด้านล่าง
สำหรับ FPDF นั้นคำสั่งที่ใช้สำหรับกำหนดท้ายกระดาษ ก็คือคำสั่ง Footer() ซึ่งคำสั่งนี้จะถูกเรียกใช้อัตโนมัติเมื่อสิ้นสุดข้อความในแต่ละหน้า
คำสั่ง Footer() นี้ไม่สามารถเรียกใช้ได้โดยตรง (เพราะว่ามันจะเรียกใช้อัตโนมัติ) และในตัว FPDF เองเขาเขียนไว้แค่คำสั่ง (เมธอด) เปล่าๆ
ถ้าท่านต้องการจะตั้งค่าท้ายกระดาษท่านจะต้องทำการ สืบทอดคลาส FPDF แล้ว Override คำสั่ง (เมธอด) Footer()
เรามาดูวิธีการ
<?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,'Time '. date('d').'/'. date('m').'/'.( date('Y')+543 ).' '. date('H:i:s') ,0,0,'R'); } } //เรียกใช้งาน เราจะเรียกใช้คลาสใหม่ของเราแทน $pdf=new PDF(); $pdf->AddPage(); $pdf->SetFont('Arial','',12); for( $i=0;$i<20;$i++ ){ $pdf->Cell(0,10,'www.select2web.com/forums/ #'.$i); $pdf->Ln(20); } $pdf->Output(); ?> |
จากโค้ดท่านจะเห็นว่า เราไม่ได้เรียกใช้คำสั่ง $pdf->footer() เลย นั่นเป็นเพราะอย่างที่บอกข้างบนแหละครับว่า มันจะเรียกใช้ของมันเองทุกๆครั้ง เราไปทำอะไรกับมันไม่ได้ หรือจะบอกว่า เราไม่ต้องเรียกเองเลยก็ว่าได้
cha says:
21/12/2553 at 21/12/2553
footer ไม่แสดงผลอะคะ
ทำไงดีคะ
KatMee says:
27/12/2554 at 27/12/2554
คือ มีคำถามค่ะ
ถ้าเรากำหนด Footer ที่ $this->SetY( -10 );
แต่ข้อมูลที่แสดงมันเกิน 1 หน้ากระดาษ
ทีนี้ข้อมูลท้ายๆกระดาษกับ Footer มันแสดงผลทับกันอ่ะค่ะ
พอมีวิธีแก้ไขมั๊ยคะ….
ขอบคุณค่ะ