Php laravel Snappy PDF DIVs的大小不正确,使用高度:11英寸
我使用的是Laravel snappy,我试图绝对定位6列,以便每页打印3个 查看Php laravel Snappy PDF DIVs的大小不正确,使用高度:11英寸,php,css,laravel,pdf,Php,Css,Laravel,Pdf,我使用的是Laravel snappy,我试图绝对定位6列,以便每页打印3个 查看 ... body { position: relative; } .col1-1 { text-align: right; background-color: #00dd00; position: absolute; top: 0px; left: 0px; width: 250px;
...
body {
position: relative;
}
.col1-1 {
text-align: right;
background-color: #00dd00;
position: absolute;
top: 0px;
left: 0px;
width: 250px;
height: 11in;
}
.col1-2 {
text-align: right;
position: absolute;
background-color: #1c94c4;
top: 0px;
left: 270px;
width: 250px;
height: 11in;
}
.col1-3 {
text-align: right;
background-color: #46b8da;
position: absolute;
top: 0px;
left: 540px;
width: 250px;
height: 11in;
}
.col2-1 {
text-align: right;
background-color: #dd0100;
position: absolute;
top: 11in;
left: 0px;
width: 250px;
height: 11in;
}
.col2-2 {
text-align: right;
position: absolute;
background-color: #c4770b;
top: 11in;
left: 270px;
width: 250px;
height: 11in;
}
.col2-3 {
text-align: right;
background-color: #da0073;
position: absolute;
top: 11in;
left: 540px;
width: 250px;
height: 11in;
}
</style>
</head>
<body>
<div class="col1-1"></div>
<div class="col1-2"></div>
<div class="col1-3"></div>
<div class="col2-1"></div>
<div class="col2-2"></div>
<div class="col2-3"></div>
....
问题是这些列很短,所以第二行从第一页开始
我把页面大小设为字母
'pdf' => array(
'enabled' => true,
'binary' => 'C:\wkhtmltopdf\bin\wkhtmltopdf',
'timeout' => false,
'options' => array('page-size'=>'letter'),
所以我不确定下一步该怎么办
我觉得这是一个缩放问题
如果我不使用Snappy,只在屏幕上显示页面并以PDF格式打印屏幕,结果会更好(只差几个像素),但我当然需要以PDF格式返回页面。Snappy使用wkhtmltopdf,而wkhtmltopdf又使用Webkit呈现HTML。(如果我的建议对您没有帮助,可能会帮助您查找更多信息,因为您的问题可能与Snappy无关。) 我认为你可以通过防止页面在列中破裂来解决你的问题。。为此,您可以在每个列上使用以下CSS:
.col{
page-break-inside: avoid;
}
您还可以尝试将3列包装在一个div中,并在包装div上应用该css
您也可以尝试在列上使用
分页符after:avoid
或分页符before:avoid
,或者在列集合之间创建一个空div,并将其样式设置为“分页符after:always”。我从其他地方的建议中使用分页符after:always
尝试了两个集合之间的空div,但运气不佳。最后,我只是玩了一些Snappy选项(我假设这些选项会传递给wkhtmltopdf)并使用了“zoom”=>1.2
一切似乎都很合适。虽然这只是一项工作。。。
.col{
page-break-inside: avoid;
}