การสร้าง PDF ด้วย laravel-dompdf และเพิ่ม font ภาษาไทย

Jiratchaya Songthamaphla
2 min readSep 25, 2017

--

ส่วนนี้จะเป็นส่วนของการสอนลง laravel-dompdf และสร้างหน้า PDF (ในนี้ใช้เป็นเวอร์ชั่น 5.4)

  1. ติดตั้ง laravel-dompdf โดยใช้คำสั่ง

composer require barryvdh/laravel-dompdf

รูปที่1 ติดตั้ง composer dompdf

เมื่อติดตั้งสำเร็จจะขึ้นตามรูปที่ 1 แต่ถ้าหากติดตั้งไม่สำเร็จให้ลง composer ใหม่(คงจะลงเป็นกันนะคิคิ) หรือใช้คำสั่ง

composer update

2.แก้ไขไฟล์ config/app.php ในส่วนของ providers โดยเพิ่ม

Barryvdh\DomPDF\ServiceProvider::class,

และในส่วนของ aliases เพิ่ม

'PDF' => Barryvdh\DomPDF\Facade::class,

3.สร้าง PDFController โดยใช้คำสั่ง

php artisan make:controller PDFController

รูปที่ 2 สร้าง PDF Controller

เมื่อสร้าง PDFControllrt สำเร็จจะเป็นดังรูปที่ 2 (ในส่วนนี้จะไม่สำเร็จถ้าไม่ติดตั้ง dompdf ให้ย้อนไปดูข้อ1นะค่ะ)

4.เขียนฟังก์ชันลง PDFController

รูปที่ 3 code ใน PDFController

(อันนี้แล้วแต่ว่าใครจะเอาข้อมูลอะไรออกมาแสดงที่หน้า pdf)ในส่วนของฟังก์ชัน pdf จะใช้ $Orders มาเก็บข้อมูลจาก model Order เพื่อนำไปแสดงหน้า pdf และต้องมีการ

use PDF;

5.ในส่วนของ routes/web.php

รูปที่ 4 ใน routes/web.php

6.และมาสร้างหน้า view โดยสร้างไฟล์ที่ resources/views ชื่อว่า pdf.blade.php

รูปที่ 5 หน้า view

สำเร็จจจจจจ!!!!!!!!!!!!!(แต่ยังใช้ font ภาษาไทยไม่ได้นะ)

รูปที่ 6 หน้า pdf.blade.php

(อันนี้แล้วแต่เพื่อนตกแต่งในหน้า views/pdf.blade.php)

ส่วนนี้จะมาสอนให้ dompdf สามารถใช้ font ภาษาไทยได้

  1. ดาวโหลดตัว font ภาษาไทยมาในนี้ใช้เป็น THSarabunNew (หรือดาวน์โหลดได้ที่นี้)

จะได้ไฟล์นี้ใส่ไว้ใน public/fonts

รูปที่ 7 ไฟล์ THSarabunNew

2.และสร้างโฟร์เดอร์ fonts ลงใน storage

3.และเรียกใช้ font จากหน้า view ใช้คำสั่ง

รูปที่ 8 คำสั่งเรียกใช้ font

ไว้ใน <style>รูปที่ 8 </style>

รูปที่ 9 css/body

สร้าง css ไว้ใน <style>รูปที่ 8 </style> เพื่อไปใช้กับตัวอักษร

และในส่วนของ haed ใช้คำสั่ง

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

4.และใน body ก็เขียนตามข้อ6ด้านบนได้เลยยย

แค่นี้ font ภาษาไทยก็มาแล้วววว

รูปที่ 10 หน้า pdf.blade.php

--

--