Я использую laravel -dompdf для генерации квитанции, он должен генерировать только одну страницу, но он будет генерировать 5 страниц в стиле моего CSS, информация станет беспорядочной. Это был пример, который я сгенерировал https://imgur.com/a/diyVaRJ. Я также включил свой контроллер и просмотр для dompdf
Контроллер
public function downloadReceiptPDF($id)
{
$campaigns = DB::table('bill')
->select('bill.b_id', 'c_code', 'c_name', 'b_fee', 'b_date', 'total_month')
->join('campaign', 'campaign.c_id', '=', 'bill.c_id')
->where('bill.b_id', $id)
->get();
$pdf = PDF::loadView('campaign.receiptpdf', compact('campaigns'))->setPaper('a4', 'potrait');
return $pdf->download('receipt.pdf');
}
Просмотр: receivepdf.blade. php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Invoice</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="all">
.invoice-box {
max-width: 800px;
margin: auto;
padding: 30px;
border: 1px solid #eee;
box-shadow: 0 0 10px rgba(0, 0, 0, .15);
font-size: 16px;
line-height: 24px;
font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;
color: #555;
}
.invoice-box table {
width: 100%;
line-height: inherit;
text-align: left;
}
.invoice-box table td {
padding: 5px;
vertical-align: top;
}
.invoice-box table tr td:nth-child(2) {
text-align: right;
}
.invoice-box table tr.top table td {
padding-bottom: 20px;
}
.invoice-box table tr.top table td.title {
font-size: 45px;
line-height: 45px;
color: #333;
}
.invoice-box table tr.information table td {
padding-bottom: 40px;
}
.invoice-box table tr.heading td {
background: #eee;
border-bottom: 1px solid #ddd;
font-weight: bold;
}
.invoice-box table tr.details td {
padding-bottom: 20px;
}
.invoice-box table tr.item td {
border-bottom: 1px solid #eee;
}
.invoice-box table tr.item.last td {
border-bottom: none;
}
.invoice-box table tr.total td:nth-child(2) {
border-top: 2px solid #eee;
font-weight: bold;
}
@media only screen and (max-width: 600px) {
.invoice-box table tr.top table td {
width: 100%;
display: block;
text-align: center;
}
.invoice-box table tr.information table td {
width: 100%;
display: block;
text-align: center;
}
}
/** RTL **/
.rtl {
direction: rtl;
font-family: Tahoma, 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;
}
.rtl table {
text-align: right;
}
.rtl table tr td:nth-child(2) {
text-align: left;
}
</style>
</head>
<body>
<div class="invoice-box">
<table cellpadding="0" cellspacing="0">
<tr class="top">
<td colspan="2">
<table>
<tr>
<td class="title">
</td>
<td>
Receipt #: {{ $campaigns[0]->b_id }}
<br> Date: {{ \Carbon\Carbon::parse($campaigns[0]->b_date)->format('d/m/Y') }}
<br>
</td>
</tr>
</table>
</td>
</tr>
<tr class="information">
<td colspan="2">
<table>
<tr>
<td>
</td>
</tr>
</table>
</td>
</tr>
<tr class="heading">
<td>
Campaign Code
</td>
<td>
Price
</td>
</tr>
<tr class="item last">
<td>
{{ $campaigns[0]->c_code }} ({{ $campaigns[0]->total_month }} months)
</td>
<td>
{{ $campaigns[0]->b_fee }}
</td>
</tr>
<tr class="total">
<td></td>
<td>
Total: RM {{ $campaigns[0]->b_fee }}
</td>
</tr>
</table>
</div>
</body>
</html>