如果元素超出页面高度,dompdf分页符?

时间:2012-01-04 07:33:49

标签: php pdf-generation dompdf

在dompdf中执行分页符的最佳方法是什么?

我在page-break-before css属性中查看了here,但是当我这样做时它没有用:

table {page-break-before:auto;}

页面仍然在我的桌子中间打破。

是否可以设置我的html / css,以便如果元素超出页面高度,页面将在元素之前中断?

理想情况下,我想将我的html划分为div部分,以便每个部分将在新页面上开始,如果它将超过当前页面的高度。

5 个答案:

答案 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