FPDF บทที่ 15 การจัดข้อความ ชิดซ้าย ขวา ตรงกลาง

อันที่จริงคำสั่งนี้ผมได้เขียนไว้อย่างละเอียดแล้วที่ พิมพ์ข้อความลงไปในเอกสารด้วยคำสั่ง 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->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