ถ้าจะจินตนาการคำว่าเซลล์ให้เป็นรูปร่างที่จับต้องได้ ก็ต้องจินตนการไปถึงเซลล์ของมนุษย์ในหนังสือวิทยาศาสตร์ หรือถ้าจะจินตนาการให้หยาบกว่าเซลล์มนุษย์ ก็อาจจะจินตนาการเป็น กล่องไม้ที่มีอะไรสักอย่างอยู่ข้างใน
เซลล์ก็คือกล่อง ที่สามารถมีอะไรบรรจุอยู่ข้างในได้ และสามารถลากไปวางไว้ที่ตรงไหนก็ได้เช่นกัน
ผมได้แนะนำคำสั่งที่ใช้สำหรับพิมพ์ข้อความลงในเอกสาร pdf แล้ว 2 คำสั่ง คือ Text และ Write
มาคราวนี้ก็ถึงคิวของคำสั่ง Cell คำสั่ง Cell จะมีความสามารถมากกว่าสองคำสั่งที่ผ่านมา คำสั่ง Cell นี้สามารถทำกรอบให้ักับตัวหนังสือได้, จัดตัวหนังสือให้อยู่ตำแหน่ง ชิดซ้าย กลาง ขวา ของกรอบเซลล์ได้, แรเงาสีได้, พิมพ์ลิ้งก์ได้ด้วย
สิ่งหนึ่งที่จะต้องจำไว้ในใจเลยก็คือว่า คำสั่ง Cell จะไม่ปัดบรรทัดให้อัตโนมัติ มันจะพิมพ์ยาวพรื้ดเลยขอบกระดาษด้านขวาออกทะเลไปโน่นเลย
ลองดูโค้ดกันก่อนตามมารยาท
<?php define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); // เพิ่มฟ้อนต์ภาษาไทยเข้ามา ตัวธรรมดา กำหนด ชื่อ เป็น angsana $pdf->AddFont('angsana','','angsa.php'); //สร้างหน้าเอกสาร $pdf->AddPage(); // กำหนดฟ้อนต์ที่จะใช้ อังสนา ตัวธรรมดา ขนาด 14 $pdf->SetFont('angsana','',14); // พิมพ์ข้อความลงเอกสาร $pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงกลาง' ) , 0 , 1 , 'C' ); // พิมพ์ข้อความลงเอกสาร มีกรอบด้วย $pdf->Cell( 50 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงกลาง' ) , 1 ); // พิมพ์ข้อความลงเอกสาร มีกรอบ พารามิเตอร์ระบุอย่างนี้ก็ได้ $pdf->Cell( 50 , 5 , iconv( 'UTF-8','cp874' , 'พิมพ์ให้อยู่ตรงกลาง' ) , 'TBR' ); $pdf->Output(); ?> |
ถ้าท่านได้คลิกดูที่ Live Demo ท่านจะสังเกตุเห็นอย่างหนึ่งว่า คำสั่ง Cell นี้ให้ผลลัพธ์ที่ค่อนข้างเหมาะจะำนำไปแสดงข้อมูลที่เป็นตาราง
Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])
คำอธิบาย
สำหรับพิมพ์ข้อความลงในเอกสาร pdf
พารามิเตอร์
w : (ตัวเลข) ความกว้างของกล่องข้อความ ถ้าระบุเป็น 0 กล่องจะกว้างไปจนถึงกั้นขวาของกระดาษ
h : (ตัวเลข) ความสูงของกล่องข้อความ ค่าดีฟอลต์เป็น 0
txt : (ตัวหนังสือ) ข้อความที่ต้องการพิมพ์
border : เส้นขอบของกล่องข้อความ
- ค่าที่เป็นไปได้
- 0 : ไม่มีขอบ
- 1 : มีขอบ
- นอกจากเป็น 0 1 แล้วเรายังระบุได้ด้วยว่าเอาเฉพาะกรอบด้านไหนได้ด้วย
- L: ขอบซ้าย
- T: ขอบบน
- R: ขอบขวา
- B: ขอบล่าง
ln : (ตัวเลข) ระบุว่าหลังจากพิมพ์ข้อความในกล่องเสร็จแล้ว ให้เลื่อนเคอเซ่อร์ไปทางไหน
- ค่าที่เป็นไปได้
- 0: ปล่อยไว้ที่เดิม
- 1: เลื่อนไปเริ่มต้นที่บรรทัดใหม่
- 2: เลื่อนลงไปด้านล่างของกล่องข้อความ
align : (ตัวหนังสือ) จัดเรียงข้อความภายในกล่อง
- ค่าที่เป็นไปได้
- L or ค่าว่าง : ชิดซ้าย (default value)
- C: จัดกึ่งกลาง
- R: ชิดขวา
fill : (true/false) แรเงากล่องข้อความหรือไม่หรือไม่ สำหรับสีที่จะใช้ในการแรเงานั้นกำหนดได้ด้วยคำสั่ง SetFillColor ซึ่งจะอธิบายในบทต่อๆ ไป
- ค่าที่เป็นไปได้
- false : ไม่แรเงา (default)
- true : แรเงา
link : (ตัวหนังสือ) URL เว็บไซต์ ในกรณีเราต้องการพิมพ์ข้อความนี้ให้เป็นไฮเปอร์ลิ้งก์
minddezign says:
28/10/2552 at 28/10/2552
” คำสั่ง Cell จะไม่ปัดบรรทัดให้อัตโนมัติ มันจะพิมพ์ยาวพรื้ดเลยขอบกระดาษด้านขวาออกทะเลไปโน่นเลย ” นี่แหล่ะอีกปัญหาหนึ่งที่เจอครับ
ผมเลยต้องไปหา Add on มาลงเพิ่มอีกตัวคือ
http://www.fpdf.de/downloads/addons/3/
ตอนนี้แจ่มไปเลยครับ
administrator says:
28/10/2552 at 28/10/2552
ถ้าอยากให้มันปัดขึ้นบรรทัดใหม่ให้ ก็ต้องใช้คำสั่ง MultiCell ใน fpdf มีให้ใช้อยู่แล้วครับ
minddezign says:
28/10/2552 at 28/10/2552
รออ่าน MultiCell น่ะครับ ไม่เคยใช้เลยครับ
ลงโฆษณาฟรี says:
31/10/2552 at 31/10/2552
สงสัยต้องลงฝึกดูซะหน่อยและคับ
CoolNeung says:
27/03/2553 at 27/03/2553
กำลังหาพอดีเลย แจ๋งมาก ขอบคุณครับ
TooTooN says:
18/06/2553 at 18/06/2553
คำสั่ง Cell ใช้ร่วมกับ setXY ได้ไหมครับ
ถ้าไม่ได้ ต้องทำอย่างไรให้ตรงตามตำแหน่งที่เราต้องการ
เช่น ผมจะพิมพ์ใบเสร็จน่ะครับ
administrator says:
19/06/2553 at 19/06/2553
ถูกต้องแล้วคุณ TooTooN มันต้องใช้ร่วมกับ setXY ครับ โดย setXY ก่อนเพื่อเลื่อนตำแหน่ง หลังจากนั้นจึงใช้คำสั่ง cell เพื่อพิมพ์ข้อความ
natrujar says:
12/09/2555 at 12/09/2555
พอจะมีตัวอย่างไหมครับ ทำให้ Cell มาอยู่ที่ตรงกลางอ่ะครับ
Celty Jamecodyl says:
04/03/2558 at 04/03/2558
พี่ครับถ้าข้อความมันยาวเกินกรอบอะครับ อยากให้มันตัดข้อความให้พอดีกรอบต้องทำไงครับ
วัชรเมธน์ ชิษณุคุปต์ ศรีเนธิโรทัย says:
14/03/2558 at 14/03/2558
ใช้คำสั่ง multicell