laravel 未使用wkhtmltopdf呈现的PDF页眉和页脚

vh0rcniy  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(89)

我在Laravel项目中使用laravel-snappy从视图模板生成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>

6yjfywim

6yjfywim1#

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

$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,
    ),
),

syqv5f0l

syqv5f0l2#

开启

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

字符串
$footer应该是指向footer的路由,而不是指向footer的路径,所以应该类似于

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


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


ref

相关问题