composer require barryvdh/laravel-dompdf
routes/web.phpRoute::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 sanphamvà xuất thành file PDF "*.pdf" cho người dùng download về.app\Http\Controllers\SanphamController.phpuse 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.phpresources/views/backend/sanphamresources/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!