在dompdf中进行分页符的最佳方法是什么?
我看了一下css属性之前的分页符,但当我这样做时,它不起作用:
table {page-break-before:auto;}
那页还在我的桌子中间折断。
有没有可能设置我的html/css,这样如果元素要超过页面高度,页面就会在元素之前中断?
理想情况下,我想把我的html分成几个div部分,这样如果每个部分要超过当前页面的高度,它就会在一个新页面上开始。
使用page-break-inside: auto;
基本上是对dompdf说"在分页时做你通常会做的事情。"
要在表之前/之后强制分页,可以使用page-break-before: always;
/page-break-after: always;
。
为了让dompdf避免破坏元素内部,您可以使用page-break-inside: avoid;
。
你可以用这个在线调试器进行快速测试——经过几天的测试,我终于发现了我的分页和边距问题。
Excursus:是否有人在开发/生产环境上安装了调试环境,并可以向我介绍任何文档或教程?
这里有一个技巧:将不想跨多页打印的<table>
放在另一个<table>
中。
在我的例子中,这是因为我在另一个表中使用了一个表。比如
<table>
<tr>
<td>
<table></table>
</td>
</tr>
</table>
所以我把桌子拿了出来。解决了我的问题。
//循环开始前先赋值,循环内部设置后增量操作符。其次,结合单页数据显示项的条件使用。
<?php $n=1 ?>
@foreach ($purchases as $key=> $purchase)
<tr >
<td> {{ $key + 1 }} </td>
<td> {{ $purchase->supplier->company_name ?
$purchase->supplier->company_name : "" }} </td>
<td> {{ "S-".$purchase->id }} </td>
<td> {{ salte_items($purchase->purchaseItems) }} </td>
<td> {{ $purchase->created_at->format('d-m-Y') }} </td>
<td> {{ intval($purchase->total) }} </td>
</tr>
@if ( $n % 25 == 0 )
<div style="page-break-before:always;"> </div>
@endif
<?php $n++ ?>
@endforeach