Laravel Blade foreach 在 Laravel-DOMPDF 输出文件中循环
Laravel Blade foreach loop in Laravel-DOMPDF output file
我在使用 DOMPDF 和 Laravel Blade 时遇到问题。我正在使用 DOMPDF 在他们的文档之后将 blade 视图呈现为 PDF,但是当我有超过一页的记录时,它会将它们切断。这就像 overflow:hidden
添加到页面,因此记录不会显示。你可以通过下图看到。你可以清楚地看到底部还有一条记录,但是下一页是资格,而不是列表中的下一条记录。
我已经尝试使用分页符和各种方法来尝试让它工作,但对于我的生活来说,这只是不想玩球。
我在他们的文档中找不到任何表明这是一个问题的内容,我不确定是什么原因造成的。
渲染的PDF:
正在加载的视图部分:
请原谅表格,但由于 PDF 无法加载 CSS3,我必须回到基础以获得 PDF 所需的正确样式结果。
<tr>
<td class="border-b-4 border-grey-200 pb-5 mb-5">
<table width="100%" class="mb-5" style="width:100%" border="0" cellpadding="0">
<tr>
<td>
<h1 class="text-6 text-grey-700 mb-3">Employment History</h1>
</td>
</tr>
</table>
@foreach ($employers as $employer)
<table width="100%" class="mb-5" style="width:100%" border="0" cellpadding="0">
<tr>
<td class="border border-grey-200 p-5 rounded">
<h2 class="capitalize text-grey-700 text-lg">{{ $employer->job_title }}</h2>
<span class="text-grey-600">{{ $employer->employer_name }}</span>
<p class="my-3 text-blue-500 text-sm">
<span>{{ date('jS F Y', strtotime($employer->from_date)) }}</span>
<span> — </span>
@if ($employer->current != 1)
<span>{{ date('jS F Y', strtotime($employer->to_date)) }}</span>
@else
<span>Present</span>
@endif
</p>
<div class="markdown text-grey-700">{!! $employer->description !!}</div>
</td>
</tr>
</table>
@endforeach
</td>
</tr>
PDF控制器:
PDF::setOptions([
'dpi' => 150,
'defaultFont' => 'sans-serif',
'fontHeightRatio' => 1,
'isPhpEnabled' => true,
]);
$pdf = PDF::loadView('pdf_cv', [
'cv' => $cv,
'awards' => $awards,
'employers' => $employers,
'hobbies' => $hobbies,
'images' => $images,
'languages' => $languages,
'projects' => $projects,
'qualifications' => $qualifications,
'skills' => $skills
]);
return $pdf->stream();
我进行了谷歌搜索,无数次阅读了他们的文档,我对这个问题感到困惑,所以希望其他人也有过这种经历,可以伸出援助之手。
如果您需要更多信息,我可以提供。
问题在于 table 设置。我不知道到底发生了什么,因为您无法检查 PDF,但 table 似乎一直重叠导致它 运行 离开页面。
我在使用 DOMPDF 和 Laravel Blade 时遇到问题。我正在使用 DOMPDF 在他们的文档之后将 blade 视图呈现为 PDF,但是当我有超过一页的记录时,它会将它们切断。这就像 overflow:hidden
添加到页面,因此记录不会显示。你可以通过下图看到。你可以清楚地看到底部还有一条记录,但是下一页是资格,而不是列表中的下一条记录。
我已经尝试使用分页符和各种方法来尝试让它工作,但对于我的生活来说,这只是不想玩球。
我在他们的文档中找不到任何表明这是一个问题的内容,我不确定是什么原因造成的。
渲染的PDF:
正在加载的视图部分:
请原谅表格,但由于 PDF 无法加载 CSS3,我必须回到基础以获得 PDF 所需的正确样式结果。
<tr>
<td class="border-b-4 border-grey-200 pb-5 mb-5">
<table width="100%" class="mb-5" style="width:100%" border="0" cellpadding="0">
<tr>
<td>
<h1 class="text-6 text-grey-700 mb-3">Employment History</h1>
</td>
</tr>
</table>
@foreach ($employers as $employer)
<table width="100%" class="mb-5" style="width:100%" border="0" cellpadding="0">
<tr>
<td class="border border-grey-200 p-5 rounded">
<h2 class="capitalize text-grey-700 text-lg">{{ $employer->job_title }}</h2>
<span class="text-grey-600">{{ $employer->employer_name }}</span>
<p class="my-3 text-blue-500 text-sm">
<span>{{ date('jS F Y', strtotime($employer->from_date)) }}</span>
<span> — </span>
@if ($employer->current != 1)
<span>{{ date('jS F Y', strtotime($employer->to_date)) }}</span>
@else
<span>Present</span>
@endif
</p>
<div class="markdown text-grey-700">{!! $employer->description !!}</div>
</td>
</tr>
</table>
@endforeach
</td>
</tr>
PDF控制器:
PDF::setOptions([
'dpi' => 150,
'defaultFont' => 'sans-serif',
'fontHeightRatio' => 1,
'isPhpEnabled' => true,
]);
$pdf = PDF::loadView('pdf_cv', [
'cv' => $cv,
'awards' => $awards,
'employers' => $employers,
'hobbies' => $hobbies,
'images' => $images,
'languages' => $languages,
'projects' => $projects,
'qualifications' => $qualifications,
'skills' => $skills
]);
return $pdf->stream();
我进行了谷歌搜索,无数次阅读了他们的文档,我对这个问题感到困惑,所以希望其他人也有过这种经历,可以伸出援助之手。
如果您需要更多信息,我可以提供。
问题在于 table 设置。我不知道到底发生了什么,因为您无法检查 PDF,但 table 似乎一直重叠导致它 运行 离开页面。