page-break-after:always;解决window.print打印断页问题——已解决
今天用户提出一个关于window.print()
打印的问题:
如下图所示:在打印断页的部分,会出现数据打印不全的情况。打印预览与实际打印的情况还有有所区别。
注意一点:如果想要实现window.print()
打印当前的页面,则想要保证打印页面的body
的height
必须为auto
,否则只会打印第一页。还要注意一下权重问题。
@media print{body {height: auto !important;}
}
html
部分,之前用的是table
,后面由于断页打印不全的问题,我用div
写的如上图所示的样式。
<div class="tab"><div class="hea"><div style="width:40px;">序号</div><div class="big">型号</div><div class="big">品牌</div><div>封装</div><div>单价</div><div>数量</div><div>金额</div></div><div class="tbo"><div v-for="(item,index) in dataInfo.materielResultchlids[0].bomDetailEntities" class="lang"><div><div style="width:40px;">{{index+1}}</div><div class="big">{{item.PartNo}}</div><div class="big">{{item.Mfg}}</div><div class="nowrap">{{item.Package}}</div><div>{{item.UnitPrice}}</div><div>{{item.BuyNum}}</div><div>{{item.TotalMoney}}</div></div></div></div>
</div>
css
部分比较简单,此处不进行展示。
重点是断页问题:
为了能够保证数据量多的情况下,每页的内容都能够展示完全。之前出现打印内容不全都出现在页面的页眉和页脚部分。
因此考虑的解决方法就是:限制每页展示的条数。
比如第一页:第一页表头有其他内容,因此限制第一页只展示前14条:
第二页及以后,每页展示20条。
如何强制断页呐??
可以使用css
来实现,在需要断页的地方添加一个标签,给此标签添加css
如下:
<p style="page-break-after:always;"></p>
page-break-after:always;
表示在此标签之后强制断页。
什么情况下会断页呐??
需要断页有以下几种情况:
- 表格条数超过14条,则第一页
index==13
时,需要断页 - 表格条数超过14条,并且后续
index>13&&(index-13)%20==0
时,需要断页
因此在符合上述情况的地方,添加一个强制断页的标签即可。
为了方便,tableLen即为条数-1
,也就是索引的最大值。
<p v-if="tableLen>13&&(index>13&&(index-13)%20==0)" style="page-break-after:always;text-align:center;"></p>
<p v-if="index==13" style="text-align:center;page-break-after:always;"></p>
什么情况下需要添加页码??
为了能够更好的展示数据,可以添加一个页码的功能,可以直接使用window.print()
弹窗中的选项来展示:
但是如果这样的话,页眉和页脚都会展示,而且内容除了页码还有其他。因此我想自己处理这个页码内容。
需要展示页码有以下几种情况:
- 表格的条数小于14条(也就是
tableLen
<13),则应该展示第1页/共1页
; - 表格的条数超过14条(也就是
tableLen
>=13),且(index-13)%20==0
并且不是最后一页时,应该展示页码。 - 最后一页显示页码
上面的情况中,第二种情况会比较难思考,可以跟第三种情况一同处理:
第三种情况:tableLen>13&&index==tableLen
:当表格条数超过14条,并且最后一条后面,需要添加页码。
<p v-if="tableLen>13&&index==tableLen" style="text-align:center;margin-top:6px;">第{{Math.ceil(tableLen/20)}}页/共{{Math.ceil(tableLen/20)}}页</p>
第二种情况可以是在第三种情况的前提下:
<p v-else-if="tableLen>13&&index>13&&(index-13)%20==0" style="text-align:center;margin-top:6px;">第{{parseInt((index-13)/20)+1}}页/共{{Math.ceil(tableLen/20)}}页</p>
因为第二种情况与第三种情况有重叠,所以先写第三种情况,当第三种情况不满足时,再判断是否满足第二种情况,即可完成。
如果自己写过js
的分页组件,这个应该是很简单了。我的js
都忘了,所以花了我很长时间才搞定。。。。
完成!!!
page-break-after:always;解决window.print打印断页问题——已解决相关推荐
- 关于window.print打印分页功能
平常window.print分页一般打印时用到page-break-after:always; 打印的样式设置在 <style type="text/css" media=& ...
- js window.print() 打印图片,图片有时候不显示
window.print() 打印网络资源图片不显示 解决方法 等待网络资源图片加载完成后,在打印 $(doc).find('.qrcode-down').load(function () {ifra ...
- window.print()打印网页局部内容
用window.print()打印网页局部内容 今天客户让添加个打印证照功能,直接用window.print()打印的是整个页面,而用以下方法就可以只打印证明了 <!--window.print ...
- 使用window.print()打印局部页面,ifrme打印ie报错
问题: 使用window.print();打印页面,将不需要的数据隐藏,将需要的数据显示,打印完成之后将刚才隐藏的数据还原,显示的数据隐藏, 谷歌浏览器.部分ie能一气呵成, 火狐浏览器以及少数ie ...
- window.print打印部分无法显示
1.window.print单选框无法显示 $("body").attr("style","-webkit-print-color-adjust: e ...
- js的window.print()打印背景图片,打印背景图片无法显示
js的window.print()打印背景图片 题目描述 js的window,print()打印背景图片给body加了图片地址之后,非要设置浏览器打印选项里面设置背景图形打印才行,怎么通过js去设置默 ...
- 解决GitHub下载速度慢的问题(已解决)
解决GitHub下载速度慢的问题(已解决) 核心:通过码云导入github资源,通过码云转接下载. 1.找到需要下载的GitHub地址\color{blue}{1. 找到需要下载的GitHub地址}1 ...
- 指定window.print 打印区域
第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 细如下: ? 1 2 3 <style media=print type=&q ...
- window.print()打印时根据页面高度设置居中显示、设置打印布局(纵向、横向)
1.页面定义打印div按钮: <!-- 打印机按钮开始 --> <div style="position: absolute;top:100;right:0px;z-ind ...
最新文章
- 阿里一道Java并发面试题 (详细分析篇)
- 今日机器学习概念:感知机模型
- mysql自动写入创建时间_mysql 自动记录数据插入及最后修改时间
- seo需要处理页面html,为什么单页面的seo不友好?如何解决这一问题?
- PHP实现文件安全下载
- 【深度学习】——常见深度学习模型总结、anchor-free和anchor-based
- 【搜索/推荐排序】FM,FFM,AFM,PNN,DeepFM:进行CTR和CVR预估
- mysql+distinct+max_MySQL中distinct与group by之间的性能进行比较
- springMVC下载FTP上的文件
- 数据分析师必须会python_数据分析师必须掌握的9种数据分析方法
- 简述python3默认使用的编码标准_Python3.X默认使用的编码是
- github项目提交失败 master - master (non-fast-forward)
- html数据透视,高级Excel – 数据透视表工具
- 蓝牙Beacon室内定位全栈
- “跳出内卷”ROttKRON乐旷陶瓷耳机的新视野,“形、质、声”打开耳机新话题
- 前端常用PS技巧总结之更换图片背景图片
- opencore amr android,苹果手机amr文件用什么打开,opencore框架进行语音
- 卷积神经网络流程图_AAAI 2020 | 北大:图卷积中的多阶段自监督学习算法
- 怎样查网站的排名和收录情况
- NBA表格_巅峰乔丹的进攻水平,是NBA常规赛历史最佳么?
热门文章
- python机器学习minimize函数参数介绍及作用
- android weakreference 用法,Android WeakReference的理解与使用
- 勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节
- 慢阻肺新药落地,钟南山院士开出我国首张处方
- discuz 发帖和回复页面,提示问题
- 计算机维修初级培训课程表,初级维修电工培训班课程表.doc
- 真三 一次Rush图
- Java 9 新特性快速预览
- chatgpt系列文章-23.2.15(主要还在发现chatgpt的不足,偏探索,像报告)
- python airflow_1.airflow的安装