如何让网页内容分页打印

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让网页内容分页打印相关的知识,希望对你有一定的参考价值。

打印一个网页的时候,从上到下自动分成几页来打。

参考技术A 一般网页打印的时候都是自动分页打印的,页面默认大小是A4纸张大小,如果您分页打印时不是这个大小,可以通过页面设置来调节你的纸张大小。如果在打印时只想打印网页上的部分内容,可以将您要打印的内容选中,然后点击打印,在跳出的对话筐中“页面范围”选择“选定范围”即可。

前端如何让网页打印时每一页都有固定的头部,且在达到固定高度时自动分页

页面效果:

第一页

技术图片

第N页

技术图片

业务需求:

1.网页点击打印时,打印渲染的页面每一页的头部都要有公司logo;
2.而且分页时不能让某一行的表格断开(必须在达到固定高度时让页面自动分页);

为了实现上述需求,过程可谓心塞
我首先尝试着让每一页的头部都能打印出相同的东西,
本来想偷个懒,借助浏览器自带的打印设置功能,却发现行不通行不通
谷歌虽然也有设置页眉页脚的功能,但是它有自己固定的格式,根本设置不了自己想要的内容

页眉
技术图片

页脚
技术图片

谷歌不行,我还是不死心,就是想用现成的东西来实现,所以呢
我又去尝试火狐,惊喜不,火狐可以设置页眉页脚,然而
并没有什么*用,又加不进去logo,然后呢
我肯定又去试了一下IE(哼哼,还是不行,我就不截图演示了)

技术图片

好吧,我终于有一点点死心了,还是我自己来搞吧,接着就是各种百度,找方法,看别人的代码。
中间尝试过这种方法:https://codeday.me/bug/20170302/3239.html

技术图片

技术图片

这种方法是我当时能找到的我觉得最需求的方法,但是它有一个让人无法容忍的缺点,
打印渲染时,每一页的头部会和内容重合在一起,这显然是不行的!

所以最后还是得重新研究其他方法:
最后达成目的的思路是:
1.首先在页面布局的时候,去获取每一行表格内容的高度相加再加上其他固定部分的高度,
如果超过某个高度(这个高度大致等于打印时页面的高度)就添加你想要的头部html结构
2.在这个高度到达时,就让打印页面自动分页,这个可以通过
page-break-before:always这个css属性来实现

html结构:

技术图片

技术图片

技术图片

css样式:

技术图片

技术图片

js部分:

技术图片

技术图片










以上是关于如何让网页内容分页打印的主要内容,如果未能解决你的问题,请参考以下文章

前端如何让网页打印时每一页都有固定的头部,且在达到固定高度时自动分页

如何将网页打印为不分页的pdf

打印网页中某一段内容

C#中如何打印出整个PANEL的内容?

window.print网页打印——打印htmlbody的实际高度,而不是看到的内容

两个网页中的内容,jQuery怎样把其中一个网页中标签中的内容复制到另一网页中显示出来?