Rate this post

Trong phần này, chúng ta sẽ tìm hiểu cách sử dụng tệp html view để chúng ta có thể tạo PDF. Giả sử chúng ta đang làm việc trên một dự án laravel cấp ERP lớn. Trong trường hợp này, chúng tôi cần sử dụng bảng cơ sở dữ liệu để tạo tệp PDF cho dữ liệu cần thiết. Chúng tôi sẽ cung cấp quy trình từng bước rất đơn giản để tạo tệp pdf và tải xuống.

Các bài viết liên quan:

Giới thiệu về dompdf

dompdf là một thư viện PHP mã nguồn mở được sử dụng để tạo và xuất file PDF từ mã HTML. Nó cho phép bạn tạo các file PDF chất lượng cao từ các template HTML đã có sẵn hoặc tự tạo. dompdf hỗ trợ đầy đủ các tính năng của HTML và CSS, bao gồm cả hình ảnh, font chữ, màu sắc, bảng, liên kết và nhiều hơn nữa.

dompdf được tích hợp tốt với Laravel Framework, giúp bạn dễ dàng tạo và xuất file PDF từ các trang Laravel của mình. Bạn có thể sử dụng dompdf để tạo các báo cáo, hóa đơn, chứng từ, thẻ ghi chú và nhiều tài liệu khác dưới định dạng PDF.

dompdf có cấu trúc dễ sử dụng và linh hoạt. Bạn có thể tùy chỉnh kiểu dáng, định dạng và trang trí của file PDF tạo ra. Ngoài ra, dompdf cũng hỗ trợ việc tạo header và footer cho các trang PDF, cho phép bạn thêm thông tin, logo hoặc chú thích vào các vị trí tương ứng trên trang.

Việc sử dụng dompdf trong Laravel giúp bạn tận dụng được sức mạnh của cả hai công nghệ và mang lại trải nghiệm xuất file PDF tốt nhất cho người dùng của bạn.

Xem thêm Typography là gì ?

Các tính năng và tùy chọn của dompdf

dompdf cung cấp nhiều tính năng và tùy chọn để tạo và tùy chỉnh file PDF. Dưới đây là một số tính năng và tùy chọn chính của dompdf:

  1. Hỗ trợ HTML và CSS: dompdf hỗ trợ đầy đủ các tính năng của HTML và CSS, bao gồm cả hình ảnh, font chữ, màu sắc, bảng, liên kết, danh sách và nhiều hơn nữa. Bạn có thể sử dụng các thuộc tính CSS để tùy chỉnh kiểu dáng của các phần tử trong file PDF.
  2. Hỗ trợ UTF-8: dompdf hỗ trợ mã hóa UTF-8, cho phép bạn hiển thị và in các ký tự và ngôn ngữ đa quốc gia trong file PDF.
  3. Tạo header và footer: Bạn có thể thêm header và footer vào các trang PDF để hiển thị thông tin như tiêu đề, logo, số trang, chú thích và nhiều hơn nữa. Điều này giúp tạo ra các trang PDF chuyên nghiệp với thông tin đầy đủ.
  4. Kiểm soát kích thước trang: Bạn có thể tùy chỉnh kích thước trang PDF, bao gồm cả kích thước giấy và các kích thước tùy chỉnh. Điều này cho phép bạn tạo ra các loại tài liệu PDF khác nhau như hóa đơn, báo cáo, thẻ ghi chú, v.v.
  5. Quản lý font chữ: dompdf hỗ trợ sử dụng các font chữ tùy chỉnh trong file PDF. Bạn có thể nhúng font chữ vào file PDF hoặc sử dụng các font chữ mặc định được hỗ trợ sẵn.
  6. Xử lý đường dẫn và liên kết: dompdf tự động xử lý đường dẫn và liên kết trong file PDF. Điều này cho phép bạn tạo liên kết clickable trong tài liệu PDF và đảm bảo các đường dẫn đến hình ảnh và tài nguyên khác được đúng định dạng.
  7. Tùy chỉnh trang in: Bạn có thể tùy chỉnh các tùy chọn trang in trong file PDF, bao gồm cả in 2 mặt, in nhiều trang trên một tờ giấy, cỡ giấy, v.v.
  8. Hiệu suất và tương thích: dompdf được tối ưu hóa để đạt hiệu suất cao và tương thích tốt trên nhiều trình duyệt và hệ điều hành.

Tùy chọn và tính năng của dompdf cho phép bạn tạo ra các file PDF tùy chỉnh và chất lượng cao trong Laravel, đáp ứng đầy đủ các yêu cầu và tiêu chuẩn của dự án của bạn.

Xem thêm Lịch sử của Laravel

Tạo và xuất file PDF trong Laravel với dompdf

Để tạo và xuất file PDF trong Laravel sử dụng dompdf, bạn có thể thực hiện các bước sau:

Bước 1: Cài đặt gói dompdf Sử dụng Composer, chạy lệnh sau để cài đặt gói dompdf trong dự án Laravel của bạn:

composer require dompdf/dompdf

Bước 2: Tạo route và controller Trong file routes/web.php, tạo một route để xử lý yêu cầu tạo file PDF. Ví dụ:

Route::get('/export-pdf', 'PDFController@exportPDF');

Sau đó, tạo một controller mới bằng cách chạy lệnh artisan:

php artisan make:controller PDFController

Mở file PDFController và thêm phương thức exportPDF để tạo và xuất file PDF:

use Dompdf\Dompdf;
use Illuminate\Support\Facades\View;

class PDFController extends Controller
{
    public function exportPDF()
    {
        // Tạo một instance của Dompdf
        $dompdf = new Dompdf();

        // Lấy nội dung view và chuyển đổi thành HTML
        $html = View::make('pdf.my_view')->render();

        // Thêm HTML vào Dompdf
        $dompdf->loadHtml($html);

        // Render file PDF
        $dompdf->render();

        // Xuất file PDF
        $dompdf->stream('my_file.pdf');
    }
}

Bước 3: Tạo view Tạo một file view (ví dụ: my_view.blade.php) trong thư mục resources/views/pdf. Trong file view này, bạn có thể xây dựng cấu trúc và nội dung của tài liệu PDF.

<!DOCTYPE html>
<html>
<head>
    <title>My PDF</title>
    <style>
        /* Định dạng CSS cho tài liệu PDF */
    </style>
</head>
<body>
    <h1>Title</h1>
    <p>Content</p>
</body>
</html>

Bước 4: Truy cập route Truy cập URL /export-pdf trong trình duyệt để gọi phương thức exportPDF trong controller. Dompdf sẽ tạo và xuất file PDF có tên là my_file.pdf.

Lưu ý: Bạn có thể tùy chỉnh và thêm các thiết lập khác cho dompdf trong controller để đáp ứng các yêu cầu cụ thể của bạn, bao gồm kích thước trang, font chữ, margin, header, footer, v.v.

Đây là một ví dụ cơ bản về việc tạo và xuất file PDF trong Laravel sử dụng dompdf. Bạn có thể tùy chỉnh và mở rộng theo nhu cầu của dự án của bạn.

Xem thêm Plugin font WordPress

Xử lý lỗi và vấn đề thường gặp với dompdf

Khi sử dụng dompdf trong Laravel, có thể gặp phải một số lỗi và vấn đề thường gặp. Dưới đây là một số lỗi phổ biến và cách xử lý chúng:

  1. Lỗi không tìm thấy class Dompdf:
    • Đảm bảo rằng bạn đã cài đặt gói dompdf bằng Composer và đã thực hiện import đúng namespace của Dompdf trong controller.
    • Nếu bạn đã cài đặt gói dompdf nhưng vẫn gặp lỗi này, thử chạy lệnh composer dump-autoload để tải lại các file autoload.
  2. Lỗi font chữ không hiển thị đúng:
    • Dompdf sử dụng các font chữ mặc định có sẵn, nhưng nếu bạn muốn sử dụng font chữ tùy chỉnh, hãy chắc chắn rằng bạn đã nhúng nó vào file HTML của bạn và đặt đúng đường dẫn.
    • Để sử dụng font chữ tùy chỉnh, bạn có thể tạo một thư mục fonts trong thư mục public của Laravel và đặt font chữ vào đó. Sau đó, bạn có thể trỏ đường dẫn font trong CSS của bạn đến thư mục fonts.
  3. Lỗi hiển thị không đúng kích thước trang hoặc margin:
    • Sử dụng các thuộc tính CSS như @page, body, và html để định cấu hình kích thước trang và margin cho tài liệu PDF.
    • Kiểm tra xem các thiết lập kích thước trang và margin đã được định nghĩa đúng trong tệp CSS của bạn.
  4. Lỗi hiển thị sai định dạng hoặc không hiển thị hình ảnh:
    • Đảm bảo rằng đường dẫn tới hình ảnh trong tài liệu PDF là đúng và có thể truy cập được.
    • Sử dụng đường dẫn tuyệt đối hoặc đường dẫn cơ địa chỉ (base64) để tham chiếu đến hình ảnh.
  5. Lỗi tài liệu PDF trống hoặc không xuất được:
    • Kiểm tra xem bạn đã gọi đầy đủ các phương thức cần thiết như loadHtml(), render(), và stream() trong controller của bạn.
    • Kiểm tra xem nội dung HTML của bạn được chuyển đổi đúng và hợp lệ.

Ngoài ra, hãy đảm bảo bạn đã tham khảo tài liệu chính thức của dompdf và cập nhật phiên bản mới nhất của gói để giảm thiểu các lỗi và vấn đề khác.

Xem thêm Chỉnh font chữ tiếng Việt trong wordpress

Ví dụ tạo PDF và download PDF bằng dompdf

Bây giờ chúng ta sẽ tạo một tệp pdf bằng cách sử dụng gói laravel-dompdf. Sử dụng gói này, chúng tôi cũng có thể tải xuống chức năng. Trong ví dụ dưới đây, chúng ta sẽ tạo một bảng có tên là “items”. Chúng tôi sẽ sử dụng dữ liệu của bảng mục để tải xuống tệp pdf của nó ở định dạng bảng. Nếu muốn, chúng tôi có thể tạo tệp pdf tốt hơn bằng cách viết CSS của chúng tôi trên tệp chế độ xem. Cuối cùng, chúng tôi sẽ tạo một bản pdf và tải xuống bằng một số bước như sau. Đối với điều này, chúng ta nên có một dự án mới và đang hoạt động của Laravel 5 hoặc Laravel 5.3, v.v.

Bước 1:

Ở bước này, chúng ta sẽ thực hiện Cài đặt. Trước tiên, chúng tôi sẽ mở thiết bị đầu cuối hoặc dấu nhắc lệnh của mình và chạy lệnh sau:

composer require barryvdh/laravel-dompdf  

Bây giờ chúng ta sẽ mở tệp có tên config / app.php. Sau đó, chúng tôi sẽ thêm bí danh và nhà cung cấp dịch vụ.

'providers' => [  
    ....  
    Barryvdh\DomPDF\ServiceProvider::class,  
],  
'aliases' => [  
    ....  
    'PDF' => Barryvdh\DomPDF\Facade::class,  
],  

Bước 2:

Trong bước này, chúng tôi sẽ Thêm tuyến đường. Chúng tôi sẽ tạo tuyến đường để chúng tôi có thể tạo chế độ xem. Vì vậy, chúng tôi sẽ mở tệp của chúng tôi có tên “app / Http / routers.php”. Sau đó, chúng tôi sẽ thêm tuyến đường sau:

Bước 3:

Trong bước này, chúng ta sẽ Tạo Bộ điều khiển. Đối với điều này, chúng tôi sẽ sử dụng đường dẫn app / Http / Controllers / ItemController.php để thêm một bộ điều khiển mới là ItemController. Nếu chúng tôi muốn thực hiện điều này, chúng tôi yêu cầu một bảng mục sẽ chứa một số dữ liệu. Khi chúng ta muốn tạo tệp pdf và quản lý dữ liệu bảng, bộ điều khiển này sẽ hữu ích. Vì vậy, chúng tôi sẽ sử dụng tệp điều khiển và đặt mã sau vào đó:

app / Http / Controllers / ItemController.php

Bước 4:

Trong bước này, chúng tôi sẽ tạo View tệp. Chúng tôi sẽ tạo chế độ xem và tệp pdf bằng cách sử dụng tệp chế độ xem có tên là “pdfview.blade.php”. Vì vậy, chúng tôi sẽ thêm đoạn mã sau vào tệp pdfview đã tạo.

resource / view / pdfview.blade.php

Sử dụng mã trên, chúng tôi có thể chuyển đổi tệp mục thành tệp pdf và cũng có thể tải xuống tệp đó. Để chạy đoạn mã trên, chúng ta cần khởi động máy chủ của Laravel 5 hoặc Laravel 5.3. Đối với điều này, chúng tôi sẽ mở thiết bị đầu cuối hoặc dấu nhắc lệnh và chạy lệnh sau:

php artisan serve  

Sử dụng lệnh trên, chúng tôi có thể khởi động máy chủ Laravel. Nó sẽ cung cấp cho chúng tôi url cơ sở của ứng dụng Laravel. Chúng tôi sẽ mở trình duyệt của mình và viết url sau để kiểm tra đoạn mã trên.

http://127.0.0.1:8000/pdfview

Sau khi nhập URL ở trên, chúng ta sẽ thấy kết quả sau:

Xem thêm Cách lưu Graphs vào File trong lập trình R

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now