需求

打印Element-UI el-table组件渲染的表格。

总体布局

整体采用居中布局,表格宽度设置为1000px。表格宽度应该根据打印的纸张大小设置,过大会导致表格打印时显示不全,过小则不能充分利用纸张空间。我用A4纸打印设置宽度1000px刚好。

1. 静态页面

<template><div class="print-container"><h1 style="text-align: center">员工信息表</h1><el-table:data="tableData"style="width: 100%"border><el-table-columnprop="date"label="日期"width="180"></el-table-column><el-table-columnprop="name"label="姓名"width="180"></el-table-column><el-table-columnprop="gender"label="性别"width="180"></el-table-column><el-table-columnprop="address"label="地址"></el-table-column><el-table-columnprop="phone"label="手机"></el-table-column></el-table><div class="print-button-container"><el-button type="primary" icon="el-icon-printer">打印</el-button></div></div>
</template><script>
export default {name: 'Print',props: {msg: String},data() {return {tableData: [{date: '2016-05-02',name: '王小虎',gender: '男',address: '上海市普陀区金沙江路 1518 弄',phone: '19029384851'}, {date: '2016-05-04',name: '王小虎',gender: '男',address: '上海市普陀区金沙江路 1517 弄',phone: '19029384851'}, {date: '2016-05-01',name: '王小虎',gender: '男',address: '上海市普陀区金沙江路 1519 弄',phone: '19029384851'}, {date: '2016-05-03',name: '王小虎',gender: '男',address: '上海市普陀区金沙江路 1516 弄',phone: '19029384851'}]}}
}
</script>
<style scoped>.print-container {width: 1000px;margin: 0 auto;}.print-button-container {display: flex;justify-content: flex-end;margin-top: 15px;}
</style>

表格效果:

2. 调用浏览器的打印方法

    <div class="print-button-container"><el-button type="primary" icon="el-icon-printer" @click="handlePrint">打印</el-button></div>
/*** 调用浏览器的打印方法
*/
handlePrint() {window.print()
}

打印预览:

可以看到,el-table默认的边框样式在打印时并不怎么清晰,右边框和底部边框还出现了丢失;顶部和底部出现了页眉和页脚;打印按钮也没去掉。接下来将逐步优化打印的效果。

表格样式

首先来优化el-table的样式

/*字体调黑*/
>>> .el-table {font-size: 16px;color: #000000;
}>>> .el-table th {font-weight: normal;font-size: 18px;
}>>> .el-table thead {color: #000000;
}/*边框调黑*/
>>> .el-table::before {background-color: #000000;
}>>> .el-table--border::after {background-color: #000000;
}>>> .el-table--border th, >>> .el-table--border td {border-color: #000000;
}>>>.el-table--group, >>>.el-table--border {border-color: #000000;
}>>> .el-table th.is-leaf, >>> .el-table td {border-bottom: 1px solid #000000;
}/*减小单元格间距*/
>>> .el-table th, >>> .el-table td {padding: 0 0;
}
/*显示底部边框 估计打印时伪元素把border覆盖了 height设为0隐藏伪元素*/
>>> .el-table::before {height: 0;
}/*显示右边框*/
>>> .el-table--group::after, >>> .el-table--border::after {width: 0;
}

打印预览:

可以看到,优化后的表格更加清晰简洁,接下来还要设置一些特殊的,只在打印时生效的样式。

打印样式

通过@media print媒体查询设置打印时生效的一些样式:删除“打印”按钮,删除默认的页眉页脚,布局设置为纵向。

@media print {@page {/* 纵向打印 */size: portrait;/* 横向打印 *//*size: landscape;*//* 去掉页眉页脚*/margin-top: 0;margin-bottom: 0;}/*打印不显示打印按钮*/.print-button-container {display: none !important;}
}

打印预览

到此为止,打印的任务大功告成!!
完整demo: https://github.com/memory1668/el-table-print
参考: window.print() 前端实现网页打印详解

Element-UI el-table组件表格打印相关推荐

  1. vue+element UI的 table组件实现日历

    有现成的日历插件但是不符合需求,所以项目中使用vue+element 的表格组件自己实现一个日历组件 核心js部分:此部分为计算的当月的日期且包含是否可选,是否节假日等等可操作的标记,这部分基本是实现 ...

  2. Element UI 之table表格表头过长使用点点…显示,并添加鼠标移入悬浮显示

    Element UI 之table表格表头过长使用点点-显示,并添加鼠标移入悬浮显示 需求 鼠标移入表头 关键点: 1.样式中添加:(如果在scope中会不起作用) .el-table .cell { ...

  3. Element UI 的 table 单元格合并

    项目中遇到表格单元格合并的需求,在此记录整个解决过程. 项目使用的是 Element UI,表格使用的是 table 组件.Element UI 的 table 表格组件中对单元格进行合并,需要使用 ...

  4. Element UI(桌面组件库)之 三大灵魂拷问

    1. 什么是Element UI 概述 Element,一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 Element UI是基于Vue 2.0的 Element UI 提供 ...

  5. element UI上传图片Upload组件使用 图片转base64和fale文件处理 formdata数据格式的应用

    element UI上传图片Upload组件使用 & 图片转base64和fale文件处理 & formdata数据格式的应用 1.element UI上传图片Upload组件使用 效 ...

  6. Web前端笔记-element ui中table中某列添加a便签进行跳转

    效果是这样的: 这里的文章标题和查看都可以进行跳转. 其中对应的代码如下: <template style="height: 100%"><el-table:da ...

  7. element ui 弹出组件的遮罩层在弹出层的上面的解决方法

    element ui 弹出组件的遮罩层在弹出层的上面的解决方法 参考文章: (1)element ui 弹出组件的遮罩层在弹出层的上面的解决方法 (2)https://www.cnblogs.com/ ...

  8. vue问题三:element ui的upload组件上传图片成功和移除事件

    element ui的upload组件上传图片成功和移除事件: 登录后获取到后台传的token存到中: sessionStorage.setItem("token",data.ob ...

  9. 使用vue-print-nb打印element table时表格打印不全的问题

    elment的表格设置宽度为100%之后打印还是不能将表格打印完整 如下图 1.寻找问题 为什么会出现这种情况,打开控制台查看代码 原来是el-table 会计算100%宽度为具体多少px 然后再计算 ...

  10. element ui的table表格因竖向滚动条导致表头错位问题解决

    在vue项目中引入table组件,当将表格高度固定出现竖向滚动条,而且横向滚动条滚到最右边时,就会出现表头与内容错位的问题,如图 解决方法: Step1:在app.vue中加入css样式 <st ...

最新文章

  1. 如何使用vue.js 实现前台html页面和后台的数据绑定
  2. cesium 经纬度绘制点_cesium结合geoserver利用WFS服务实现图层新增(附源码下载)
  3. ASP.NET 2.0 正式版中无刷新页面(客户端回调)的开发
  4. 【机器学习算法】XGBoost
  5. WebSocket webshop后台服务器的一些全局数据结构
  6. win7+vs2015/13+caffe+matlab+python(CPU only)配置
  7. POJ-1062-昂贵的聘礼 (最短路)
  8. C# .NET 使用DotNetZip开源类库 处理 压缩/解压 Zip 处理乱码情况
  9. Gartner发布云安全能力评估报告:阿里云全球第二,超过亚马逊!
  10. vc_redist 各版本下载地址
  11. matlab高斯窗函数,Matlab中窗函数的简单使用
  12. java生成随机数组_Java 生成随机数
  13. 【记录】非常实用,Python编码规范的一些建议(1)
  14. 重组人骨形态发生蛋白-2(BMP 2)的研究意义
  15. 通过python刷android步数,使用 Python 修改微信/QQ/支付宝运动步数
  16. 短视频去水印微信小程序,免费去除视频水印
  17. 斐波那契凤尾————斐波那契数列、打表
  18. 钟汉良日记:你知道吗?写日记可以影响三代人!
  19. JavaScript我的常用函数库
  20. 搜狐畅言社交化评论插件接入之单点登录

热门文章

  1. Spring解析@ComponentScan注解的执行流程
  2. linux查看系统版本_谈一谈在Linux中使用df命令查看文件系统
  3. java new 关键字到底做了什么?
  4. java中日期做减法_Java中日期的加法和减法
  5. LISP 冻结excel窗格_Excel这10个实操技巧,每个都很牛逼,绝对不能错过
  6. C++ string获取字符串元素:[]和at()
  7. 安卓rom制作教程_安卓手机TWRP_Recovery卡刷图文教程 适用于卡刷ROM,TWRP救砖
  8. android rom制作教程,【图片】ROM助手:任意安卓机型的ROM制作教程【a298t吧】_百度贴吧...
  9. 考勤系统java_基于java开发的考勤管理系统
  10. 基于ssh人事考勤管理系统