elementUI+vue+printJs实现页面表格数据打印功能实例

 更新时间:2025年06月05日 10:22:37   作者:Asonys  
打印功能是一个很普遍的需求,这两天我又遇到了,这篇文章主要介绍了elementUI+vue+printJs实现页面表格数据打印功能的相关资料,包括安装依赖、引用插件、设置打印区域div、绑定按钮事件加载全量数据并调用printJS方法,需要的朋友可以参考下

对接的是  print-js 插件

print-JS 官网文档地址:Print.js - Javascript library for HTML elements, PDF and image files printing.

1、elementUI页面数据已经开发完成,只需要直接引用对应printJs即可

可以先开发页面,最后实现打印功能即可

2、先安装printJs依赖

npm install print-js --save

3、在需要打印功能的vue页面文件内引用

import printJS from 'print-js'

4、在vue页面添加一个按钮,绑定点击事件printAll

<button @click="printAll">打印</button>

5、由于打印采用的是html类型,可以打印elementUI渲染的表格数据

可以给el-table外部加一个dive,然后给这个对应的div上面一个id,就是下面方法中下printable属性

 <div id="printBox">
        // 这里是<el-table>数据
       <el-table>
      </el-table>
</div>

6、对应的JS单机事件方法

      // 打印数据
      async printAll() {
        // 由于上面表格展示的数据分页了,这个地方可以加载全部数据,不分页
        await this.getList();
        // 打印js
        printJS({
          printable: 'printBox', //打印区域id
          type: 'html',    // 打印类型是html
          header: '打印表头标题',
          headerStyle: 'text-align:center; font-size:24px;',
          footer: ' ',
          maxWidth: 800, // 最大宽度
          documentTitle: ' ',
          scanStyles: false, // 自定义样式
          // 直接在 style 中设置横向打印
          style: '@media print {@page { size: A4 landscape; margin: 10mm 10mm 10mm 10mm;} body{zoom: 87%; margin:0mm 5mm 0mm 5mm;} tbody {text-align:center;border: 1px solid #000000;} th {border: 1px solid #000; vertical-align: middle; height: 40px;font-size: 14px;} td {border: 1px solid #000; line-height:40px;}}'
        })
      }

css样式说明:

// 设置A4,横向打印,边距是10mm

@page { size: A4 landscape; margin: 10mm 10mm 10mm 10mm;} 

// 缩放比例87%,内容边距5mm

body{zoom: 87%; margin:0mm 5mm 0mm 5mm;}

//设置表格内容剧中,边框及颜色,表格高度

tbody {text-align:center;border: 1px solid #000000;} th {border: 1px solid #000; vertical-align: middle; height: 40px;font-size: 14px;} td {border: 1px solid #000; line-height:40px;}}

总结

到此这篇关于elementUI+vue+printJs实现页面表格数据打印功能的文章就介绍到这了,更多相关printJs页面表格数据打印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于vue-treeselect绑值、回显等常见问题的总结

    关于vue-treeselect绑值、回显等常见问题的总结

    这篇文章主要介绍了关于vue-treeselect绑值、回显等常见问题的总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue 列表过滤与排序的实现

    Vue 列表过滤与排序的实现

    这篇文章主要介绍了Vue 列表过滤与排序的实现,文章围绕主题展开详细的内容介绍,具有一定的参考价值需要的小伙伴可以参考一下
    2022-05-05
  • Vue实现自定义视频和图片上传的示例代码

    Vue实现自定义视频和图片上传的示例代码

    这篇文章主要为大家详细介绍了如何通过Vue实现自定义视频和图片上传的功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • vue开发中遇到的问题总结

    vue开发中遇到的问题总结

    在本篇文章里小编给大家分享的是关于vue开发中遇到的问题总结,有兴趣的朋友们可以学习参考下。
    2020-04-04
  • vue-i18n的9以上版本中@被用作特殊字符处理,直接用会报错问题

    vue-i18n的9以上版本中@被用作特殊字符处理,直接用会报错问题

    这篇文章主要介绍了vue-i18n的9以上版本中@被用作特殊字符处理,直接用会报错问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue做网页开场视频的实例代码

    vue做网页开场视频的实例代码

    这篇文章主要介绍了vue做网页开场视频的实例代码,需要的朋友可以参考下
    2017-10-10
  • preload对比prefetch的功能区别详解

    preload对比prefetch的功能区别详解

    这篇文章主要为大家介绍了preload对比prefetch的使用区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Vue编写炫酷的时钟插件

    Vue编写炫酷的时钟插件

    这篇文章主要为大家详细介绍了Vue编写炫酷的时钟插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 关于移动端与大屏幕自适应适配方案

    关于移动端与大屏幕自适应适配方案

    这篇文章主要介绍了关于移动端与大屏幕自适应适配方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue实现滚动条始终悬浮在页面最下方

    vue实现滚动条始终悬浮在页面最下方

    这篇文章主要为大家详细介绍了vue实现滚动条始终悬浮在页面最下方,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论