Kotchasan Framework Documentation

Kotchasan Framework Documentation

Pdf

TH 05 Feb 2026 07:53

Pdf

\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 พร้อมรองรับ 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)