【发布时间】:2020-05-24 16:01:33
【问题描述】:
我正在尝试使用 spatie/browsershot 和 laravel-browsershot wrapper 在 Laravel 应用程序中生成包含视图内容的 PDF;我使用 svg 作为我的信头背景,并希望将视图的内容放置在每个页面上 SVG 的特定区域内。不幸的是,边距 ->margins(40, 20, 40, 30) 使我的 #watermark div 随边距移动 - 它不再处于固定的 0,0 位置。
你能帮我正确设置水印div吗?所以它不受页边距的影响
在控制器中
return PDF::loadView('pdf.letter', compact('letter'))
->showBackground()
->waitUntilNetworkIdle()
->margins(40, 20, 40, 30)
->format('A4')
->inline();
在我的刀片中,我设置了以下 css
#watermark {
position: fixed;
top: 0px;
left: 0px;
width: 21cm;
height: 29.7cm;
z-index: -1000;
}
<body>
<div id="watermark">
<img src="{{ asset('/img/a4.svg') }}" height="100%" width="100%" />
</div>
<div>
<!-- The content of PDF here -->
</div>
</body>
我取得的最好成绩就是这个
虚线矩形是 SVG 文件中的区域,我希望视图的所有内容在该区域中流入所有页面,同时尊重设置的边距
我通过在 php 中删除 ->margins(....) 并将样式添加到 <body> 标记来实现它
body {
margin-top: 4cm;
margin-right: 2cm;
margin-bottom: 4cm;
margin-left: 3cm;
}
如您所见,第一页底部和下一页顶部的页边距似乎为 0
【问题讨论】:
标签: php css laravel google-chrome-headless browsershot