1、安装插件

npm install vue-print-nb --save

## yarn

yarn add vue-print-nb

 

vue3安装:

npm install vue3-print-nb --save

## yarn

yarn add vue3-print-nb

 

2、使用

直接打印页面HTML

1)方法

① 给要打印的部分设置一个 id

② 在打印按钮中添加 v-print="'#id名'"

2)代码(以表格为例)

XML/HTML Code复制内容到剪贴板

  1. <template>  
  2.   <div class="box">  
  3.     <a-table :columns="columns" :data-source="data" bordered id="printMe"></a-table>  
  4.     <a-button v-print="printContent" class="btn no-print">打印</a-button>  
  5.   </div>  
  6. </template>  
  7. <script>  
  8. const columns = [  
  9.   {  
  10.     title: 'Name',  
  11.     dataIndex: 'name',  
  12.   },  
  13.   {  
  14.     title: 'Cash Assets',  
  15.     className: 'column-money',  
  16.     dataIndex: 'money',  
  17.   },  
  18.   {  
  19.     title: 'Address',  
  20.     dataIndex: 'address',  
  21.   },  
  22. ];  

  23. const data = [  
  24.   {  
  25.     key: '1',  
  26.     name: 'John Brown',  
  27.     money: '¥300,000.00',  
  28.     address: 'New York No. 1 Lake Park',  
  29.   },  
  30.   {  
  31.     key: '2',  
  32.     name: 'Jim Green',  
  33.     money: '¥1,256,000.00',  
  34.     address: 'London No. 1 Lake Park',  
  35.   },  
  36.   {  
  37.     key: '3',  
  38.     name: 'Joe Black',  
  39.     money: '¥120,000.00',  
  40.     address: 'Sidney No. 1 Lake Park',  
  41.   },  
  42. ];  

  43. export default {  
  44.   data() {  
  45.     return {  
  46.       data,  
  47.       columns,  
  48.       tableHead: '测试表格',  
  49.       printContent: {  
  50.         id: "printMe", // 打印的区域  
  51.         preview: false, // 预览工具是否启用  
  52.         previewTitle: '这是预览标题', // 预览页面的标题  
  53.         popTitle: '', // 打印页面的页眉  
  54.         extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",  
  55.         extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',  
  56.         previewBeforeOpenCallback() {  
  57.           console.log('正在加载预览窗口')  
  58.         },  
  59.         previewOpenCallback() {  
  60.           console.log('已经加载完预览窗口')  
  61.         },  
  62.         beforeOpenCallback(vue) {  
  63.           vue.printLoading = true  
  64.           console.log('打开之前')  
  65.         },  
  66.         openCallback(vue) {  
  67.           vue.printLoading = false  
  68.           console.log('执行了打印')  
  69.         },  
  70.         closeCallback() {  
  71.           console.log('关闭了打印工具')  
  72.         },  
  73.         clickMounted(vue){  
  74.           console.log('点击了打印按钮');  
  75.           vuevue.printContent.popTitle = vue.tableHead // 动态设置页眉  
  76.         }  
  77.       }  
  78.     }  
  79.   }  
  80. };  
  81. </script>