Laravel Preview, Download PDF from HTML

Trong bài viết này mình sẽ chia sẻ cách preview, download file pdf từ HTML với laravel 5.7+. Mình sẽ sử dụng dompdf (barryvdh/laravel-dompdf package) để tạo file pdf trong ví dụ nhé. Step1: Install laravel-dompdf Package Đầu tiên mình sẽ cài đặt barryvdh/laravel-dompdf bởi composer command bên dưới trong ứng dụng. composer require barryvdh/laravel-dompdf

Trong bài viết này mình sẽ chia sẻ cách preview, download file pdf từ HTML với laravel 5.7+.
Mình sẽ sử dụng dompdf (barryvdh/laravel-dompdf package) để tạo file pdf trong ví dụ nhé.

Step1: Install laravel-dompdf Package

Đầu tiên mình sẽ cài đặt barryvdh/laravel-dompdf bởi composer command bên dưới trong ứng dụng.

composer require barryvdh/laravel-dompdf

Sau khi cài đặt thành công package, mình sẽ mở file config/app.php và thêm service provider and alias.
config/app.php

'providers' => [
	....
	BarryvdhDomPDFServiceProvider::class,
],
  
'aliases' => [
	....
	'PDF' => BarryvdhDomPDFFacade::class,
]

Step 2: Create Routes

Mở file routes/web.php và thêm code như bên dưới.
routes/web.php

Route::get('generate-pdf','[email protected]');

Step 3: Create Controller

Mình sẽ tạo ItemController.php với phương thức generatePDF trong route và thêm code như bên dưới.
app/Http/Controllers/ItemController.php

<?php

namespace AppHttpControllers;

use AppModelsItem;
use IlluminateHttpRequest;
use PDF;

class ItemController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function generatePDF()
    {
        $data = ['title' => 'Welcome to Viet Nam'];
        $pdf = PDF::loadView('myPDF', $data);
        //Nếu muốn hiển thị file pdf theo chiều ngang
        // $pdf->setPaper('A4', 'landscape');
        
        //Nếu muốn download file pdf
        return $pdf->download('myPDF.pdf');
        
        //Nếu muốn preview in pdf
        //return $pdf->stream('myPDF.pdf');
    }
}

Trong phương thức generatePDF mình đã ghi chú cách preview, download và hiển thị pdf theo kiểu landscape(bề ngang).

Step 4: Create Blade File

Mình sẽ tạo file myPDF.blade.php(resources/views/myPDF.blade.php) để hiển thị layout của file pdf và thêm code như bên dưới.
resources/views/myPDF.blade.php

<!DOCTYPE html>
<html>
<head>
	<title>Hi</title>
</head>
<body>
	<h1>Welcome to ItSolutionStuff.com - {{ $title }}</h1>
	<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
	tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
	quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
	consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
	proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</body>
</html>

Thay vì fix cứng dữ liệu hiển thị ra file pdf, các bạn có thể hiển thị dữ liệu từ database vào file pdf nhé.
Cuối cùng chạy code và kiểm tra kết quả.

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ