您现在的位置是:网站首页> 编程资料编程资料
vue使用Print.js打印页面样式不出现的解决_vue.js_
2023-05-24
731人已围观
简介 vue使用Print.js打印页面样式不出现的解决_vue.js_
vue Print.js打印页面样式不出现


解决方案
加上这句就好了!完美!

vue-print-nb打印问题总结
1、表格的列缺失(element-ui table组件)
原因:table-layout: fixed导致的,出现部分列没有被打印
让表table布局更加符合预期,普通使用table时,其table-layout 默认值是 auto,导致表格第二行和第一行不一样宽,也就是两行的宽度不对齐。而使用:
table { table-layout: fixed; }则会让表的布局以第一行为准,设置表格的宽度,然后其他行的表格宽度就按照第一行为准。一般表格第一行是表头标题,第二行以后是数据行,也就是让数据行的每列宽度向第一行列宽度看齐。
这种样式的表格布局在性能上也快得多,这是因为整个表格的内容不需要花费进行分析,以便知道列的宽度。
解决方法:
注意点:
/deep/ table{ table-layout: auto !important; }可能会造成样式错乱,比如你页面有table,打印弹出层的table,这样修改样式有可能会导致页面表格行错位,解决办法:在页面的
2、打印内容缺失(print.js/print-js独有,固定高度导致)
原因:一般为了好看,会固定高度,然后超出内容出现滚动条,但是打印的时候,只会打印固定高度的内容,导致打印内容缺失
解决方法:
或者这样:
找到print.js的getStyle方法,加入一行代码
str += ""; getStyle: function () { var str = "", styles = document.querySelectorAll('style,link'); for (var i = 0; i < styles.length; i++) { str += styles[i].outerHTML; } str += ""; str += ""; return str; },注意点:
1、box是你固定高度标签的id,当然你也可以换成class或者其他,使样式生效即可
2、@media print只影响打印的样式,不会影响页面样式
3、表格内容缺失(表格滚动导致,只打印显示区域内容)
原因:不管是print.js还是vue-print-nb插件,都有这个问题,因为表格滚动导致
解决方法:
用一个隐藏div包裹你要打印的表格或者还有其他内容,总体包裹
注意点:
1、经过测试,A4纸大小宽度大致在650px,所以你隐藏的table列,要自己设置宽度,整体宽度在750左右,大于750,列会超出,不打印,小于750,右边会留有空白
2、
4、不能分页
原因:不管你是下载print.js保存到本地,还是npm下载print-js,只能打印一页,可能太菜了
解决方法:
使用插件:vue-print-nb,使用方法:vue-print-nb
此插件会根据打印内容的高度,自己分页,如果想自定义分页的话,方法如下:
1、在末尾的最后一个标签,加入样式 style="page-break-after: always;"
我是本页的末尾哦
2、定义打印样式,原理同上,但是方便需要,只需要统一定义class即可
@media print { @page{ size: auto; margin: 3mm; } .footer {page-break-after: always;} }以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关内容
- vue 使用print-js 打印渲染不出来问题_vue.js_
- Vue3+Element Plus按需引入(自动导入)详解_vue.js_
- el-select与el-tree结合使用实现树形结构多选框_vue.js_
- 一文教会你vue中使用async和await_vue.js_
- element Drawer 抽屉无法渲染问题及解决_vue.js_
- vue如何动态加载组件详解_vue.js_
- vue3+Echarts页面加载不渲染显示空白页面的解决_vue.js_
- JavaScript数据结构之链表各种操作详解_javascript技巧_
- react 组件实现无缝轮播示例详解_React_
- vuex学习进阶篇之getters的使用教程_vue.js_
