在dompdf中执行分页符的最佳方法是什么?
我在page-break-before css属性中查看了here,但是当我这样做时它没有用:
table {page-break-before:auto;}
页面仍然在我的桌子中间打破。
是否可以设置我的html / css,以便如果元素超出页面高度,页面将在元素之前中断?
理想情况下,我想将我的html划分为div部分,以便每个部分将在新页面上开始,如果它将超过当前页面的高度。
答案 0 :(得分:70)
使用page-break-inside: auto;
基本上说dompdf“执行破坏页面时通常会执行的操作。”
要在表格之前/之后强制分页,您可以使用page-break-before: always;
/ page-break-after: always;
。
要求dompdf避免在元素内部使用page-break-inside: avoid;
。
答案 1 :(得分:5)
您可以使用this online debugger进行快速测试 - 经过数天的测试后,我终于找到了我的分页和保证金问题。
Excursus:有没有人在开发/生产环境中安装调试环境,可以指向我任何文档或教程?
答案 2 :(得分:3)
这是一个技巧:放置<table>
您不想在另一个<table>
的多个页面上打印。
答案 3 :(得分:0)
就我而言,这是因为我在另一个表中使用了一个表。 喜欢,
<table>
<tr>
<td>
<table></table>
</td>
</tr>
</table>
所以我确实要把桌子拿出来。解决了我的问题。
答案 4 :(得分:0)
//在for循环开始前先赋值一个变量,并在for循环内设置后增量运算符。其次,在单页数据显示项条件下使用。
<?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