ผมสมมติเหตุการณ์ๆหนึ่ง สมมติว่าท่านต้องการพิมพ์ข้อความบรรทัดหนึ่ง ให้อยู่ที่กึ่งกลางหน้ากระดาษ ท่านจะทำอย่างไร?
อันที่จริงคำสั่งนี้ผมได้เขียนไว้อย่างละเอียดแล้วที่ พิมพ์ข้อความลงไปในเอกสารด้วยคำสั่ง Cell แต่ตรงนั้นอธิบายในเชิงรายละเอียดคำสั่ง ผมเลยว่าจะเขียนขึ้นมาอีกสักบท ให้เห็นถึงการประยุกต์ใช้คำสั่ง แบบชัดๆ อ่านกันบ่อยๆ เจอกันบ่อยๆ ฝึกบ่อยๆ เดี๋ยวก็เข้าใจมันไปเอง
ดูโค้ดเลยละกัน แล้วจะอธิบายทีหลัง
AddFont('angsana','','angsa.php');
//สร้างหน้าเอกสาร
$pdf->AddPage();
// กำหนดฟ้อนต์ที่จะใช้ อังสนา ตัวธรรมดา ขนาด 14
$pdf->SetFont('angsana','',14);
// พิมพ์ข้อความลงเอกสาร
$pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงกลาง' ) , 0 , 1 , 'C' );
$pdf->Output();
?>
คำสั่ง Cell
0 : คือความกว้างเต็มบรรทัด ถ้ากำหนดเป็นเลขอื่น ความกว้างของเซลล์ก็จะเท่ากับเลขที่ระบุ
5 : คือความสูงของเซลล์ จะตีความว่าเป็นความสูงของบรรทัดก็ได้
iconv( ‘UTF-8′,’cp874’ , ‘พิมพ์ให้อยู่ตรงกลาง’ ) : คือข้อความที่ต้องการให้พิมพ์ ที่ผมต้องเอาเข้าฟังก์ชั่น iconv ก่อนก็เพราะว่าตัว FPDF เองมันไม่ซัพพอร์ต UTF-8 แล้วไฟล์ php ของผมนั้นผมเซฟเป็น UTF-8 , cp874 ก็คือ code page 874 ซึ่งเป็นรหัสของภาษาไทย
0 : คือไม่ต้องการให้มีกรอบ
1 : คือบอก FPDF ว่า เมื่อพิมพ์ข้อความเสร็จแล้ว ให้คงเคอเซอร์ไว้ที่เดิม
C : คือบอก FPDF ว่าจัดตัวอักษรให้อยู่กึ่งกลางเซลล์ ทีนี้ท่านกลับไปดูพารามิเตอร์ตัวแรกสิ เรากำหนดเป็น 0 ความกว้างเซลล์จะเต็มบรรทัด เพราะฉะนั้น เมื่อ FPDF พิมพ์ข้อความออกมา มันก็จะพิมพ์มาที่ตำแหน่งกึ่งกลางหน้ากระดาษ พอดิบพอดี
ถ้าอยากจัดข้อความให้ชิดขวา
$pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงขวา' ) , 0 , 1 , 'R' );
ถ้าอยากจัดข้อความให้ชิดซ้าย
$pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงซ้าย' ) , 0 , 1 , 'L' );
หรือจะเขียนอย่างนี้ก็ได้
$pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงซ้าย' ) , 0 , 1 );
ไม่ต้องระบุว่าให้จัดเรียงยังไง เพราะค่าดีฟอลต์ของมันอยู่ที่ L อยู่แล้ว
ท่านสามารถอ่านรายละเอียดของคำสั่งนี้แบบยิบๆ ได้ที่ พิมพ์ข้อความลงไปในเอกสารด้วยคำสั่ง Cell
น้องพี says:
07/01/2554 at 07/01/2554
ขอบคุณ้วปนี้มากๆครับถ้าไไม่ได้คงเรียนไม่จบแน่ๆครับผม
Simon says:
05/03/2558 at 05/03/2558
ผมติดตามมาทั้งซีรีย์เลย ขอบคุณมากๆ เลยครับ เปิดโลกทัศน์ ได้ความรู้ ขอบคุณจริงๆ ครับ