位置: IT常识 - 正文

vue使用Print.js打印页面样式不出现的解决(vue-print-nb-jeecg)

编辑:rootadmin
这篇文章主要介绍了vue使用Print.js打印页面样式不出现的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 目录

推荐整理分享vue使用Print.js打印页面样式不出现的解决(vue-print-nb-jeecg),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue-print-nb-jeecg,vue print,vue-print-nb遇到的坑,vue-print-nb-jeecg,vueprintnb,vueprintnb,vue print,vue-print-nb,内容如对您有帮助,希望把文章链接给更多的朋友!

vue Print.js打印页面样式不出现解决方案vue-print-nb打印问题总结1、表格的列缺失(element-ui table组件)2、打印内容缺失(print.js/print-js独有,固定高度导致)4、不能分页vue Print.js打印页面样式不出现

解决方案

加上这句就好了!完美!

vue-print-nb打印问题总结1、表格的列缺失(element-ui table组件)

原因:table-layout: fixed导致的,出现部分列没有被打印

让表table布局更加符合预期,普通使用table时,其table-layout 默认值是 auto,导致表格第二行和第一行不一样宽,也就是两行的宽度不对齐。而使用:

table { table-layout: fixed; }

则会让表的布局以第一行为准,设置表格的宽度,然后其他行的表格宽度就按照第一行为准。一般表格第一行是表头标题,第二行以后是数据行,也就是让数据行的每列宽度向第一行列宽度看齐。

这种样式的表格布局在性能上也快得多,这是因为整个表格的内容不需要花费进行分析,以便知道列的宽度。

解决方法:

<style lang="less" scoped>    /deep/ table{        table-layout: auto !important;    }    /deep/ .el-table__header-wrapper .el-table__header{        width: 100% !important;    }    /deep/ .el-table__body-wrapper .el-table__body{        width: 100% !important;    }</style>

注意点:

/deep/ table{        table-layout: auto !important;    }

可能会造成样式错乱,比如你页面有table,打印弹出层的table,这样修改样式有可能会导致页面表格行错位,解决办法:在页面的<el-table>标签上加id,比如pagetable,修改less样式如下

<style lang="less" scoped>    /deep/ table{        table-layout: auto !important;    }    /deep/ .el-table__header-wrapper .el-table__header{        width: 100% !important;    }    /deep/ .el-table__body-wrapper .el-table__body{        width: 100% !important;    }    /deep/ #pagetable table{        table-layout: fixed !important;    }</style>2、打印内容缺失(print.js/print-js独有,固定高度导致)

原因:一般为了好看,会固定高度,然后超出内容出现滚动条,但是打印的时候,只会打印固定高度的内容,导致打印内容缺失

解决方法:

<style scoped>    @media print {        #box{            height: 100%;        }    }</style>vue使用Print.js打印页面样式不出现的解决(vue-print-nb-jeecg)

或者这样:

找到print.js的getStyle方法,加入一行代码

str += "<style>html,body,div{height: auto !important;}</style>";getStyle: function () {        var str = "",            styles = document.querySelectorAll('style,link');        for (var i = 0; i < styles.length; i++) {            str += styles[i].outerHTML;        }        str += "<style>" + (this.options.noPrint ? this.options.noPrint : '.no-print') + "{display:none;}</style>";        str += "<style>html,body,div{height: auto !important;}</style>";         return str;    },

注意点:

1、box是你固定高度标签的id,当然你也可以换成class或者其他,使样式生效即可

2、@media print只影响打印的样式,不会影响页面样式

3、表格内容缺失(表格滚动导致,只打印显示区域内容)

原因:不管是print.js还是vue-print-nb插件,都有这个问题,因为表格滚动导致

解决方法:

用一个隐藏div包裹你要打印的表格或者还有其他内容,总体包裹

<div id="boxbox">        <el-table :data="formList" border  width="100%">            <el-table-column align="center"  width="200" prop="prop"  label="列名"></el-table-column>            <el-table-column label="是否启用" width="100">                <template slot-scope="scope">                    <el-switch v-model="scope.row.show" :active-value="1" :inactive-value="2" active-color="#409eff" inactive-color="#B9B9B9"                    @change="changeSwitch(scope.row)"/>                </template>            </el-table-column>            <el-table-column label="是否必填" width="100">                <template slot-scope="scope">                    <el-switch v-model="scope.row.required" :active-value="1" :inactive-value="2" active-color="#409eff" inactive-color="#B9B9B9"                    @change="changeSwitch(scope.row)"/>                </template>            </el-table-column>            <el-table-column align="center"  prop="sort" width="150"  label="排序"></el-table-column>            <el-table-column label="操作"  align="center"  width="200">                <template slot-scope="scope">                    <span v-if="scope.row.sort!=0" class="editrow" @click="up(scope.row)">上升</span>                    <span v-if="scope.row.sort!=formList.length-1" class="editrow" @click="down(scope.row)">下降</span>                    <span v-if="scope.row.sort!=0" class="editrow" @click="upToZero(scope.row)">置顶</span>                                    </template>            </el-table-column>        </el-table>     </div>

注意点:

1、经过测试,A4纸大小宽度大致在650px,所以你隐藏的table列,要自己设置宽度,整体宽度在750左右,大于750,列会超出,不打印,小于750,右边会留有空白

2、<el-table>不能固定高度,所以不要设置高度

4、不能分页

原因:不管你是下载print.js保存到本地,还是npm下载print-js,只能打印一页,可能太菜了

解决方法:

使用插件:vue-print-nb,使用方法:vue-print-nb

此插件会根据打印内容的高度,自己分页,如果想自定义分页的话,方法如下:

1、在末尾的最后一个标签,加入样式 style="page-break-after: always;"

<div>我是本页的末尾哦</div>

2、定义打印样式,原理同上,但是方便需要,只需要统一定义class即可

@media print {        @page{            size:  auto;            margin: 3mm;        }        .footer {page-break-after: always;}}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

本文链接地址:https://www.jiuchutong.com/zhishi/304072.html 转载请保留说明!

上一篇:帝国cms如何升级(帝国cms安装教程)

下一篇:MVC架构-01(MVC架构模式)

  • 红米k40最高内存是多少(红米k40内存和存储规格)

    红米k40最高内存是多少(红米k40内存和存储规格)

  • 京东二维码付款怎么弄(京东二维码付款他能看到是谁发的吗)

    京东二维码付款怎么弄(京东二维码付款他能看到是谁发的吗)

  • 苹果11pro什么基带(苹果11pro采用的什么基带)

    苹果11pro什么基带(苹果11pro采用的什么基带)

  • 手机通讯录在哪里找(小米手机通讯录在哪)

    手机通讯录在哪里找(小米手机通讯录在哪)

  • 16寸苹果笔记本长宽(16寸苹果笔记本电脑的长宽是多少)

    16寸苹果笔记本长宽(16寸苹果笔记本电脑的长宽是多少)

  • 可以在多个平台抢票吗(可以在多个平台直播吗?)

    可以在多个平台抢票吗(可以在多个平台直播吗?)

  • 华为备忘录有回收站吗(华为备忘录回收)

    华为备忘录有回收站吗(华为备忘录回收)

  • 闲鱼在对话框直接转账能退吗(闲鱼在对话框直接转账被骗可以追回吗)

    闲鱼在对话框直接转账能退吗(闲鱼在对话框直接转账被骗可以追回吗)

  • 快手极速版大王卡免流量吗(快手极速版大王卡免流怎么激活)

    快手极速版大王卡免流量吗(快手极速版大王卡免流怎么激活)

  • 京东退款京豆退还吗(京东 退货 京豆)

    京东退款京豆退还吗(京东 退货 京豆)

  • 戴尔预装office是永久的吗(dell装的office是什么版本)

    戴尔预装office是永久的吗(dell装的office是什么版本)

  • 怎样才能显示电脑在线(怎样才能显示电量数字)

    怎样才能显示电脑在线(怎样才能显示电量数字)

  • am3主板支持什么cpu(am3主板什么时候发布的)

    am3主板支持什么cpu(am3主板什么时候发布的)

  • 小米8多少hz的刷新率(小米8刷70hz)

    小米8多少hz的刷新率(小米8刷70hz)

  • 手机对焦怎么调(手机对焦怎么调无限远)

    手机对焦怎么调(手机对焦怎么调无限远)

  • askaloox是不是华为手机(askaloox手机多少价位)

    askaloox是不是华为手机(askaloox手机多少价位)

  • 怎么卸载电脑软件(怎么卸载电脑软件才能卸载干净)

    怎么卸载电脑软件(怎么卸载电脑软件才能卸载干净)

  • 快门的主要作用(简述快门的主要作用)

    快门的主要作用(简述快门的主要作用)

  • 抖音撤回消息对方有显示吗(抖音撤回消息对方有提示吗)

    抖音撤回消息对方有显示吗(抖音撤回消息对方有提示吗)

  • 抖音密码忘了,手机号换了怎么办(抖音密码忘了怎么办)

    抖音密码忘了,手机号换了怎么办(抖音密码忘了怎么办)

  • 年度支付宝账单怎么看(年度支付宝账单怎么查)

    年度支付宝账单怎么看(年度支付宝账单怎么查)

  • 抖音点赞立马取消对方知道吗(抖音点赞立马取消有显示吗)

    抖音点赞立马取消对方知道吗(抖音点赞立马取消有显示吗)

  • 抖音上传失败保存草稿箱怎么回事(抖音上传失败保存到草稿箱)

    抖音上传失败保存草稿箱怎么回事(抖音上传失败保存到草稿箱)

  • win11安装组策略编辑器ADMX模板的方法步骤(win11 组策略)

    win11安装组策略编辑器ADMX模板的方法步骤(win11 组策略)

  • React常见面试题

    React常见面试题

  • window.location.href的用法(window.location.href返回值)

    window.location.href的用法(window.location.href返回值)

  • 知识图谱构建全流程(知识图谱实现方案)

    知识图谱构建全流程(知识图谱实现方案)

  • 什么是转登记纳税人
  • 以前年度损益调整账务处理分录
  • 蔬菜开税票纳税吗
  • 公司期权激励如何兑现
  • 定期定额户个人所得税怎么申报
  • 建筑企业一般纳税人简易计税办法
  • 收到的印花税退税怎么会计处理
  • 金蝶怎么填写凭证
  • 小规模购买金税盘
  • 企业变更地址需要哪些资料
  • 长期挂账其他应付款违反了哪项制度
  • 银行开户时存入的现金怎么做账
  • 支票付款提示
  • 已认证的发票如何导入
  • 税务局代增值税专用发票盖什么章
  • 免抵退转免税账务处理
  • 管理费用纳税调增账务处理
  • 拿到省级奖有什么用
  • 房地产开发企业的土地使用权计入哪里
  • 税票认证节假日可以顺延吗?
  • 赠与房产再出售税费
  • 计提福利费会计科目
  • 财务会计中关于坏账损失的账务处理
  • 上年度少计提的税金及附加
  • 如何使用ChapGPT
  • 企业间贴现手续费怎么记账?
  • 上市公司股票如何套现
  • win10鼠标速度默认是多少
  • hpp是什么文件
  • 办公费用减少的原因
  • PHP isset()与empty()的使用区别详解
  • 混合成本的分解方法很多,通常有
  • OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “C:\ProgramData\Anaconda3\lib\site-packages\to
  • 收外汇怎么做账报税
  • 计提坏账损失的范围
  • vue侧边栏导航,右侧显示对应内容
  • 如何解决Vue3没有代码提示问题?
  • 如何用html编写一个简单的网页
  • 为什么我会选择那个对我一般的男人结婚
  • php之间传递数据
  • 织梦参数配置设置
  • 固定资产的主要风险有哪些
  • 建筑公司遇到的问题
  • 小规模印花税可以按次申报吗
  • 防暑降温费用发放标准
  • 成品油红字发票开具后库存数量如何冲回?
  • 如何判断固定资产已提足折旧
  • mysql查询性能分析
  • 股权并购与收购的区别
  • 社保缴费基数和医保缴费基数一样吗
  • 对公账户收钱要手续费吗
  • 本月收入未开票会计分录
  • 转让旧固定资产怎么处理
  • 以房抵债会计分录怎么做
  • 增值税加计扣除怎么算举例
  • 可供出售金融资产公允价值变动
  • 应交增值税减免税额在借方
  • 项目上工人死亡赔偿
  • 农场有多少只鸡
  • 开红字发票做账时记账凭证上如何写摘要?
  • 单位食堂油烟机多长时间清洗一次
  • 没有报关单可以出口吗
  • 出差包干费包括什么
  • 计提附加税减半征收会计分录
  • 关于发票丢失的处罚
  • 财税讲座视频
  • mysql的事务处理
  • 电脑开机一直显示windowsxp
  • macbook air语音功能
  • webcolct.exe - webcolct 是什么进程
  • 2016年Win10 RedStone将重大改版 微软小娜可以浮动
  • linux用
  • win8的设置
  • linux012
  • 深入理解python异步编程
  • 深入理解计算机系统
  • jquery的实现原理
  • 中粮副总裁是什么级别
  • 竣工开始缴房产税吗
  • 减免税办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设