我在Laravel项目中使用laravel-snappy
从View模板生成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>
答案 0 :(得分:1)
您应该尝试以这种方式加载页脚:
$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,
),
),
答案 1 :(得分: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'));