Laravel 将多个文件收集到单个PDF中
我在我的项目包中使用。Laravel 将多个文件收集到单个PDF中,laravel,laravel-5,dompdf,Laravel,Laravel 5,Dompdf,我在我的项目包中使用。 用户可能会生成包含一些个人信息的PDF,直到这里一切正常: $pdf = PDF::loadView('personalInfo', $userData); $pdfFileName = "personal-info-{$userData['username']}.pdf"; return $pdf->download($pdfFileName); 管理员应该能够下载用户的信息,并在选择几个用户的情况下,而不是生成几个文件,我想收集到一个单一的
用户可能会生成包含一些个人信息的PDF,直到这里一切正常:
$pdf = PDF::loadView('personalInfo', $userData);
$pdfFileName = "personal-info-{$userData['username']}.pdf";
return $pdf->download($pdfFileName);
管理员应该能够下载用户的信息,并在选择几个用户的情况下,而不是生成几个文件,我想收集到一个单一的文件中的所有用户PDF文件
我该怎么做呢?您可以像下面这样创建 例如,您有
personalInfo
blade模板,它现在是针对特定用户的。因此,请循环该视图并将其存储在数组中,如下所示
$pages=[];
foreach($userDataList as $key=>$userData){
$pages[]=(string)view('personalInfo', $userData);
}
$pdf = App::make('dompdf.wrapper');
$pdf->loadView('index', ['pages' => $pages]);
return $pdf->stream();
然后,您可以创建单独的刀片模板来显示这些视图。在这里,我将其命名为index.blade.php
<style type="text/css" media="print">
div.page
{
page-break-after: always;
page-break-inside: avoid;
}
</style>
@foreach($pages as $page)
<div class="page">
{!! html_entity_decode($page) !!}
</div>
@endforeach
第页
{
分页符后:始终;
内部分页符:避免;
}
@foreach($页为$页)
{!!html_实体_解码($page)!!}
@endforeach
方法:2
在personalInfo刀片模板中循环所有用户详细信息,并在每个循环结束时添加以下分页符样式
<p style="page-break-before: always;"></p>
personalinfo刀片内部示例
@foreach($pages as $page)
personal information content
<p style="page-break-before: always;"></p>
@endforeach
@foreach($page为$page)
个人信息内容
@endforeach
另外,我个人更喜欢LaravelSnappy多页面,因为它比LaravelDomPDF呈现得更快。如果你使用windows,唯一的问题是服务器配置有点头疼
参考: