Kotchasan Framework Documentation
\Kotchasan\Pdf เป็นคลาสสำหรับสร้างเอกสาร PDF ที่พัฒนาต่อยอดมาจาก FPDF รองรับการแสดงผลภาษาไทยและการแปลง HTML เป็น PDF
การใช้งานพื้นฐาน
การสร้างเอกสาร PDF
use Kotchasan\Pdf;
// สร้าง instance
$pdf = new Pdf();
// เพิ่มหน้ากระดาษ
$pdf->AddPage();
// กำหนดฟอนต์ (รองรับภาษาไทย)
$pdf->SetFont('THSarabunNew', '', 14);
// เขียนข้อความ
$pdf->Cell(0, 10, 'สวัสดีชาวโลก', 0, 1);
// Output PDF
$pdf->Output();คำอธิบาย:
- สร้าง DB instance
- เรียกอ่านข้อมูลแบบง่าย
- บรรทัดคอมเมนต์ระบุผลลัพธ์ที่คาดหวัง
การแปลง HTML เป็น PDF
จุดเด่นของ Kotchasan\Pdf คือความสามารถในการแปลง HTML เป็น PDF พร้อมรองรับ CSS Styles
$html = '
<style>
.header { color: red; font-size: 20px; font-weight: bold; }
.content { color: #333; }
table { width: 100%; border-collapse: collapse; }
td { border: 1px solid #000; padding: 5px; }
</style>
<div class="header">หัวข้อเอกสาร</div>
<div class="content">
<p>เนื้อหาเอกสาร...</p>
<table>
<tr>
<td>ลำดับ</td>
<td>รายการ</td>
<td>ราคา</td>
</tr>
<tr>
<td>1</td>
<td>สินค้า A</td>
<td>100</td>
</tr>
</table>
</div>
';
$pdf = new Pdf();
$pdf->AddPage();
$pdf->SetFont('THSarabunNew', '', 14);
$pdf->WriteHTML($html);
$pdf->Output();CSS Support
WriteHTML รองรับ CSS properties พื้นฐานหลายรายการสำหรับการจัดรูปแบบ:
color: สีตัวอักษร (#RRGGBB)font-size: ขนาดตัวอักษรfont-weight: ความหนา (bold)font-style: ตัวเอียง (italic)text-align: การจัดตำแหน่ง (left, center, right, justify)border: ขอบ (สำหรับตาราง)padding: ระยะห่างภายในwidth: ความกว้างheight: ความสูงbackground-color: สีพื้นหลัง
อ้างอิงเมธอด (Method Reference)
Constructor
__construct(string $orientation = 'P', string $unit = 'mm', string $size = 'A4', int $fontSize = 10)
สร้าง PDF instance
$orientation: แนวตั้ง 'P' หรือ แนวนอน 'L'$unit: หน่วยวัด 'pt', 'mm', 'cm', 'in'$size: ขนาดกระดาษ 'A3', 'A4', 'A5', 'Letter', 'Legal'$fontSize: ขนาดฟอนต์เริ่มต้น
HTML Rendering
WriteHTML(string $html, string $charset = 'cp874')
แปลง HTML เป็น PDF
- รองรับ Tag HTML พื้นฐาน:
div,p,br,hr,b,i,u,strong,em,h1-h6,table,tr,td,th,img,ul,ol,li,font,center
SetCssClass(string $className, array $attributes)
กำหนด Style สำหรับ CSS Class
$pdf->SetCssClass('my-class', [
'color' => 'red',
'font-weight' => 'bold'
]);SetStyles(string $tag, array $attributes)
กำหนด Style เริ่มต้นสำหรับ HTML Tag
FPDF Extended Methods
Cell(float $w, float $h = 0, string $txt = '', mixed $border = 0, int $ln = 0, string $align = '', bool $fill = false, mixed $link = '', float $tPadding = 0, float $rPadding = 0, float $bPadding = 0, float $lPadding = 0)
สร้าง Cell พร้อมรองรับ Padding (ความสามารถเสริมจาก FPDF)
MultiCell(float $w, float $h, string $txt, mixed $border = 0, string $align = 'J', bool $fill = false, float $tPadding = 0, float $rPadding = 0, float $bPadding = 0, float $lPadding = 0)
สร้าง MultiCell (ข้อความหลายบรรทัด) พร้อมรองรับ Padding
Ln(float $h = null)
ขึ้นบรรทัดใหม่
$h: ความสูงของบรรทัด (ถ้าไม่ระบุจะใช้ค่าล่าสุด)
Output
Output(string $dest = 'I', string $name = '', bool $isUTF8 = false)
ส่งออกไฟล์ PDF (Inherited from FPDF)
$dest: 'I' (Inline), 'D' (Download), 'F' (File), 'S' (String)