js 分页问题。根据页面高度进行分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 分页问题。根据页面高度进行分页相关的知识,希望对你有一定的参考价值。
想请教下,现在有两种分页方法,第一,判断一下文档中是否存在分页符,如果存在,根据分页符写进行判断分页。否则就自己写一个进行分页。
if(document.getElementById("pagebreak"))
else
新手不知道怎样做。求教。。
如果元素超过页面高度,dompdf 分页符?
【中文标题】如果元素超过页面高度,dompdf 分页符?【英文标题】:dompdf Page break if element is exceeding page height? 【发布时间】:2012-02-02 03:43:12 【问题描述】:在 dompdf 中进行分页的最佳方法是什么?
我已经查看了 here 的 page-break-before css 属性,但是当我这样做时它不起作用:
table page-break-before:auto;
页面仍然在我的桌子中间中断。
是否可以设置我的 html/css 以便在元素超出页面高度时页面将在元素之前中断?
理想情况下,我想将我的 html 划分为 div 部分,以便每个部分在超出当前页面高度时从新页面开始。
【问题讨论】:
【参考方案1】:使用page-break-inside: auto;
基本上是对 dompdf 说“做你通常在分页时会做的事情。”
要在表格之前/之后强制分页,您可以使用 page-break-before: always;
/ page-break-after: always;
。
要让 dompdf 避免破坏元素,您可以使用 page-break-inside: avoid;
。
【讨论】:
page-break-inside:avoid;
使表格中的图像消失,并且在我的情况下使用 colspan=2
时出现问题
提醒一下:我尝试在<tbody/>
和<table/>
标签上使用page-break-inside: avoid
,以及在<tr/>
上使用page-break-after: avoid
——两者都给了我一些额外的空白页。我的解决方案是使用page-break-inside: avoid
将表格包装在<div/>
中。
请注意,这不适用于 tds 中的 rowspan,我最终切换到 mpdf,因为它是一个非常简单(但很长)的表
page-break-inside: auto;
不适用于大于页面的元素不幸的是......请参阅:github.com/dompdf/dompdf/issues/653 和 github.com/dompdf/dompdf/issues/809
这仍然是一个有效的修复。如果不切断第一页之后的内容,我无法将我的大表格转换为 PDF。 css 规则 page-break-after: always;救了我的但是。每次内容接近页面高度时,我都会内联添加该规则。非常感谢这个小技巧!【参考方案2】:
这里有个技巧:将您不想跨多个页面打印的<table>
放在另一个<table>
中。
【讨论】:
或放入 【参考方案3】:您可以使用this online debugger 进行快速测试 - 经过几天的测试,我终于发现了分页符和边距问题。
附记:是否有人在开发/生产环境中安装了调试环境,并可以向我指出任何文档或教程?
【讨论】:
检查此调试器上可能存在的问题是有意义的。例如,CSS 的一个小变化可能会影响很大。特别是 dompdflog 标签非常方便。 感谢调试器链接,它非常很有用。【参考方案4】:就我而言,这是因为我在另一张桌子中使用了一张桌子。 喜欢,
<table>
<tr>
<td>
<table></table>
</td>
</tr>
</table>
所以我所做的就是把桌子拿出来。解决了我的问题。
【讨论】:
【参考方案5】://在开始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
【讨论】:
请添加cmets并解释你的代码 您可以通过编辑您的答案将您的评论添加到您的代码中以上是关于js 分页问题。根据页面高度进行分页的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UIScrollView 中的 UIImageViews 之间添加分隔符并保持分页滚动高度 480?
前端如何让网页打印时每一页都有固定的头部,且在达到固定高度时自动分页