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

ส่วนนี้จะเป็นส่วนของการสอนลง 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

    Jiratchaya Songthamaphla

    Written by

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade