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,唯一的问题是服务器配置有点头疼 参考: