Press ESC to close

Laravel domPDF cách tùy biến Font chữ bất chấp mọi thể loại

Khi làm dự án các bạn sẽ gặp phải các yêu cầu là phải xuất ra PDF với các loại thiết kế và yêu cầu font chữ nghiệt ngã. Nhưng mà cái Laravel domPDF chưa bao giờ có 1 cái hướng dẩn chuẩn chỉ về cách để làm sao thêm font vào. Ok hôm nay sau hàng tá thời gian bị híp thì hôm nay để anh em nào nghiệt ngã vô tình vấp phải thì đọc coi chơi.

Rồi đầu tiên thì các bạn cần phải import font mới vào thư viện. Các bạn tải file này về  

https://github.com/dompdf/utils/blob/master/load_font.php

Sau đó config chỗ require_once cho đúng theo chỗ mà các bạn copy nó vào vị dụ như mình:

  • Do mình đặt file đó theo đường dẫn là platform/packages/laravel-dompdf/utils nên đường ra vendor hơi xa các bạn có thể đặt nó ở ngoài thư mục gốc cũng được không cần lo lắng.
image.png

Rồi đầu tiên bây giờ mình ví dụ để sử dụng font này. Bây giờ mình se tải 1 font mới toanh về 

Ví dụ mình lên Google font tải font này về cho nó máu:

image.png

 

Giải con mè nó nén ra ta được 2 file như sau

image.png

Tiếp ta chạy nhẹ cái lệnh như sau

php load_font.php TÊN-FONT ĐƯỜNG-DẪN-FONT.TTF

Theo cú pháp trên mình chạy thử nha.

Sau khi chạy xong bạn sẽ thấy như này 

image-1.png

Tiếp theo bạn vào đường dẫn là

vendor/dompdf/dompdf/lib/fonts

Bạn sẽ thấy font chữ của bạn đã được copy vào đây và tạo thêm 1 file nữa có định dạng là .ufm 

Bạn chạy tiếp lệnh cho file còn lại nha

Bây giờ ta đã có 4 file như hình. Nếu font nào có thêm Italic hoặc Bold-Italic thì các bạn cứ chạy thêm nếu thích hoặc là sử dụng bao nhiêu thì xài bây nhiêu

image.png

 

Tiếp đến các bạn ở thư mục vừa rồi kéo xuống kiềm cho mình file sau dompdf_font_family_cache.php các bạn sẽ thấy thé thêm 1 array với key là tên font của bạn. bây giờ bạn config lại cho đúng nha

Lưu ý tên font và tên key phải giống nhau. Như 1 cái viết thường 1 cái viết hoa ok nhưng phải đúng chính tả đừng để khác tên  

image-2.png

 

Sau khi sửa lại

image-3.png

 

Tiếp theo các bạn copy thư mục fonts này vào trong public ví dụ ở đây thì mình thích copy vào css/fonts 

Thật ra public hay stograge thì tùy các bạn ưng để đâu để

image.png

Sau đó các bạn config lại file dompdf cho đúng đường dẫn của các bạn nha

image.png

OK vậy là xong bây giờ mình test nha

Hiền tại đây là font khi chưa sửa nha

image-6.png

 

image.png

Sau đó mình sẽ sửa lại tên font là corinthia như mình đã khai báo. À các bạn nên chạy php artisan config:cache nhé

image-5.png
image-4.png

Lưu ý là ở CSS phải như này nhé, key của font và tên của Font luôn nha. Mình không hiểu lý do lắm, do mình không rành css nhưng mà không như này là tạch nha

image-7.png

 

Oke đến đây là đã hoàn thành nha.

Chúc các bạn thành công trong việc thay đổi font chữ của mình bằng Laravel dompdf

Cảm ơn các bạn đã đọc