2

laravel-snappy在我的 Laravel 项目中使用从视图模板生成 PDF 文件。这个包使用 wkhtmltopdf。

当我在路由文件中生成 PDF 时,我试图设置一些页眉和页脚,如下所示:

Route::get('/statement-of-fact', function () {
       $pdf = PDF::loadView('pdf.statement-of-fact');
       $footer = resource_path('views/pdf/statement-of-fact-footer.html');
       $pdf->setOption('footer-html', $footer);
       return $pdf->stream();
    })->name('statement-of-fact');

PDF 生成良好,但从未呈现页脚。

我在这里做错了什么?

我的 HTML 文件:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

  <div class="row">
    <div class="col-xs-12">

      Hello 
    </div>
  </div>
</body>
</html>
4

2 回答 2

2

您应该尝试以这种方式加载页脚:

$pdf = PDF::loadView('path.to.your.pdf.view');

$pdf->setOption('footer-html', view('path.to.your.footer'));

return $pdf->inline();

在您的config/snappy.php设置中,有一些边距:

'pdf' => array(
    // ...
    'options' => array(
        'margin-top'    => 15,
        'margin-right'  => 10,
        'margin-bottom' => 15,
        'margin-left'   => 10,
    ),
),
于 2016-12-06T12:40:24.200 回答
0

$pdf->setOption('footer-html', $footer);

$footer 应该是到页脚的路由,而不是到页脚的路径,所以它应该是这样的

Route::get('pdf-footer', function(){
    return view('nova::pdf-partials.footer');
})->name('pdf.footer');

$pdf->setOption('footer-html', route('pdf.footer'));

参考

于 2019-07-26T11:56:50.857 回答