打印工具,可保留打印内容原有的样式。 组件文档 MyPrint (opens new window)

# 基础用法。

  • print-range 参数传一个 css 选择器,指定需要打印的区域,如果选择器匹配到多个区域,则会依次分页打印。你可以利用这一特性灵活处理打印内容。
  • 打印按钮默认使用 el-button,通过 type,btn-class,text 参数控制按钮显示,如果仍不能满足需求,可通过名称为 button 的插槽自定义元素。

# 分页处理。

  • 如果你希望打印一个表格,每页的行数固定,并且都有表头,可以对表格进行预处理。如代码所示将处理过的表格用.my-print-displaynone 隐藏起来,使用.my-print-visible 在打印时显示出来。

# 打印 canvas 元素

# 样式修正

  • 如果打印区域内的元素的样式是通过区域外的类限定的,那么打印区域复制后,样式将不起作用。要修正此问题,可以通过给 container-class 参数传入一个类名,作为其容器的类名。如果限定的类大于一层,可以通过 parent-dom 参数传入一个 dom 对象或者一个返回 dom 对象的方法,或者可转为 dom 的字符串,此 dom 对象将作为父容器,内部必须包含 container-class 指定的类名。

# 样式改变

  • 打印的区域中,可能包含有滚动条的表格,或者折叠起来的项目,你可能希望在打印时将其展开。组件已经默认将el-table的滚动条展开,对于其它的样式,你可以使用style-array传入一个数组去改变相关元素的样式,达到自己想要的效果。数组的每个元素须包含一个css选择器和一个style对象。例如:[{selector: '.wrapper1',style: {height: 'auto'}}]

# 自定义DOM处理方法

  • 如果以上方法都不能解决问题,组件提供了一个自定义改变dom的方法dom-transfer, 该方法有两个参数,第一个是组件处理后待打印的dom, 第二个是组件对象本身,你可以通过dom操作改变或添加元素,并返回改变后的dom.

# 打印预览

  • 在打印前预览打印内容,可以添加preview参数