composer require barryvdh/laravel-dompdf
routes/web.php
Route::get('/admin/danhsachsanpham/pdf', 'Backend\SanPhamController@pdf')->name('danhsachsanpham.pdf');
<!-- Tạo nút Xuất PDF danh sách sản phẩm - Theo quy ước, các route đã được đăng ký trong file `web.php` đều phải được đặt tên để dễ dàng bảo trì code sau này. - Đường dẫn URL là đường dẫn được tạo ra bằng route có tên `danhsachsanpham.pdf` - Sẽ có dạng http://tenmiencuaban.com/admin/danhsachsanpham/pdf --> <a href="{{ route('danhsachsanpham.pdf') }}" class="btn btn-primary">Xuất PDF</a>
pdf()
:pdf()
dùng để lấy danh sách sản phẩm có trong table sanpham
và xuất thành file PDF "*.pdf" cho người dùng download về.app\Http\Controllers\SanphamController.php
use Barryvdh\DomPDF\Facade as PDF; /** * Action xuất PDF */ public function pdf() { $ds_sanpham = Sanpham::all(); $ds_loai = Loai::all(); $data = [ 'danhsachsanpham' => $ds_sanpham, 'danhsachloai' => $ds_loai, ]; /* Code dành cho việc debug - Khi debug cần hiển thị view để xem trước khi Export PDF */ // return view('backend.sanpham.pdf') // ->with('danhsachsanpham', $ds_sanpham) // ->with('danhsachloai', $ds_loai); $pdf = PDF::loadView('backend.sanpham.pdf', $data); return $pdf->download('DanhMucSanPham.pdf'); }
pdf.blade.php
resources/views/backend/sanpham
resources/views/backend/sanpham/pdf.blade.php
<!DOCTYPE html> <html> <head> <title>Danh sách sản phẩm</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> * { font-family: DejaVu Sans, sans-serif; } body { font-size: 10px; } table { border-collapse: collapse; } td { vertical-align: middle; } caption { font-size: 20px; font-weight: bold; text-align: center; } .hinhSanPham { width: 100px; height: 100px; } .companyInfo { font-size: 13px; font-weight: bold; text-align: center; } .companyImg { width: 200px; height: 200px; } .page-break { page-break-after: always; } </style> </head> <body> <div class="row"> <table border="0" align="center"> <tr> <td class="companyInfo"> Công ty Nền tảng<br /> http://sunshine.com/<br /> (0292)3.888.999 # 01.222.888.999<br /> <img src="{{ asset('img/logo-nentang.jpg') }}" class="companyImg" /> </td> </tr> </table> <br /> <br /> <?php $tongSoTrang = ceil(count($danhsachsanpham)/5); ?> <table border="1" align="center" cellpadding="5"> <caption>Danh sách sản phẩm</caption> <tr> <th colspan="6" align="center">Trang 1 / {{ $tongSoTrang }}</th> </tr> <tr> <th>STT</th> <th>Hình sản phẩm</th> <th>Tên sản phẩm</th> <th>Giá gốc</th> <th>Giá bán</th> <th>Loại sản phẩm</th> </tr> @foreach ($danhsachsanpham as $sp) <tr> <td align="center">{{ $loop->index + 1 }}</td> <td align="center"> <img class="hinhSanPham" src="{{ asset('storage/photos/' . $sp->sp_hinh) }}" /> </td> <td align="left">{{ $sp->sp_ten }}</td> <td align="right">{{ $sp->sp_giaGoc }}</td> <td align="right">{{ $sp->sp_giaBan }}</td> @foreach ($danhsachloai as $l) @if ($sp->l_ma == $l->l_ma) <td align="left">{{ $l->l_ten }}</td> @endif @endforeach </tr> @if (($loop->index + 1) % 5 == 0) </table> <div class="page-break"></div> <table border="1" align="center" cellpadding="5"> <tr> <th colspan="6" align="center">Trang {{ 1 + floor(($loop->index + 1) / 5) }} / {{ $tongSoTrang }}</th> </tr> <tr> <th>STT</th> <th>Hình sản phẩm</th> <th>Tên sản phẩm</th> <th>Giá gốc</th> <th>Giá bán</th> <th>Loại sản phẩm</th> </tr> @endif @endforeach </table> </div> </body> </html>
Cùng nhau học tập, khám phá các kiến thức nền tảng về Lập trình web, mobile, database nhé.
Nền tảng kiến thức - Hành trang tới tương lai hân hạnh phục vụ Quý khách!
Khám phá, trải nghiệm ngay
Vui lòng đăng nhập để gởi bình luận!
Đăng nhậpChưa có bình luận nào!