vue+element-ui+js页面打印(打印elementui的table)

来源:https://blog.csdn.net/Simplify_Webpage/article/details/111663634?spm=1001.2014.3001.5501

 

前端调用浏览器打印功能,实现纯前端vue+element-ui+js打印页面功能

1.效果展示

打开新页面,打印表格,可以自动分页
在这里插入图片描述

2.封装成公共函数

可以根据自己的需要,选择是否封装成公共函数。
我是放在utils下的config.js文件里面。

//id 是你要打印的某个dom元素的id名
        export function printExcel(id) {
            // 空页面
            let printStr = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'></head>";
            // 定义element-ui table组件的样式
            const tabStyle = `<style>
                table{width:100%;display:table-cell!important;box-sizing:border-box;}
                .el-table__header,.el-table__body,.el-table__footer{width:100%!important;border-collapse: collapse;text-align:center;}
                table,table tr th, table tr td { border:1px solid #ddd;color:#606266;word-wrap:break-word}
                table tr th,table tr td{padding:4mm 0mm;word-wrap:break-word }
                .el-table__body, tr td .cell{width:100%!important}
                .el-table th.gutter{display: none;}
                .el-table colgroup.gutter{display: none;}
                </style><body>`;
            let content = "";
            // 获取名为传入id的 dom元素内的内容
            let str = document.getElementById(id).innerHTML;
            // 拼接空页面+style样式+dom内容
            content = content + str;
            printStr = printStr + tabStyle + content + "</body></html>";
            // 打开新页面
            let pwin = window.open("_blank");
            // 将内容赋值到新页面
            pwin.document.write(printStr);
            pwin.document.close();
            // 聚焦-不加focuse,在某些情况下,打印页面会有问题。
            pwin.focus();
            // 使用setTimeout,等页面dom元素渲染完成后再打印。
            setTimeout(() => {
                pwin.print(); // 打印功能。 例如 window.print() 直接打印当前整个页面。 
                pwin.close(); // 关闭 打印创建的当前页面
            }, 500);

        }

3.在.vue文件中引入并使用"printExcel"函数

在需要打印的dom元素外面包了一个div,id叫“export”
在这里插入图片描述
// 使用-点击事件触发"printExcel ",传入参数为 id

// 引入函数
import { printExcel } from "@/utils/config";
    printExcel() {
      printExcel("export");
    },

 

 

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值