当前位置:   article > 正文

vue 打印功能 调用原生print,带(去掉页眉页脚)分页打印_vue printjs去掉页头页脚

vue printjs去掉页头页脚

安装 vue-print-nb插件

npm install vue-print-nb --save

安装完成后

在页面引入 import Print from 'vue-print-nb'

  1. </section>
  2. </template>
  3. <script>
  4. import Vue from 'vue';
  5. import Print from 'vue-print-nb'
  6. Vue.use(Print);
  7. import util from "../../common/js/util";
  8. import {
  9. } from "../../api/api";
  10. export default {
  11. data() {
  12. return {
  13. ...

然后在需要打印的位置,添加 id="printContent"

例如我是打印整个弹出框的信息,所以在最外层加了个div

  1. <el-dialog title="打印" :visible.sync="printVisible" :close-on-click-modal="false" width="200mm">
  2. <div id="printContent">
  3. <template>
  4. <section class="title">
  5. *******
  6. </section>
  7. </template>
  8. <template>
  9. <section class="tableTitle">
  10. 企业名称(章):{{checkTableInfo.owner}}
  11. </section>
  12. </template>
  13. <template>
  14. <section style="margin-top: 2mm;">
  15. <table class="table2">
  16. <tr>
  17. <td>号牌号码</td>
  18. ....

然后打印按钮

<el-button style="margin-left:5px;" type="primary" v-print="'#printContent'">打印</el-button>

这时打印出来的页面会出现顶部的 一个网址 ,底部会出现页码和 时间,

去掉页眉页脚

如果想要去掉这些信息

可以添加这么一个设置

margin 具体你想设置 多是就多少,是距离边距的距离,根据你的需求定吧

  1. <style media="printContent">
  2. @page {
  3. margin: 15mm; /* this affects the margin in the printer settings */
  4. }
  5. </style>

现在打印出来的就可以了

分页打印

我的需求是一次性打印出来多个二维码,但是不放在一个页面里面

然后点击一个打印。噼里啪啦就都出来了。

  1. <el-table-column label="二维码" width="250" align="center">
  2. <template slot-scope="scope">
  3. <el-card
  4. style="width: 200px; page-break-after: always"
  5. :id="'print' + scope.row.id"
  6. >
  7. <div :id="'qrcode' + scope.row.id"></div>
  8. <div style="text-align: center">{{ scope.row.id }}</div>
  9. </el-card>
  10. </template>
  11. </el-table-column>

  1. printForm() {
  2. var newWin = window.open(""); //新打开一个空窗口
  3. this.assetsInfoPrintList.forEach((ele) => {
  4. var imageToPrint = document.getElementById("print" + ele.id); //获取需要打印的内容
  5. newWin.document.write(imageToPrint.outerHTML); //将需要打印的内容添加进新的窗口
  6. });
  7. // for (var i = 0; i < this.assetsInfoPrintList.length; i++) {}
  8. const styleSheet = `<style>li{list-style:none}</style>`;
  9. newWin.document.head.innerHTML = styleSheet; //给打印的内容加上样式
  10. newWin.document.close(); //在IE浏览器中使用必须添加这一句
  11. newWin.focus(); //在IE浏览器中使用必须添加这一句
  12. setTimeout(function () {
  13. newWin.print(); //打印
  14. newWin.close(); //关闭窗口
  15. }, 100);
  16. },

效果

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/171432
推荐阅读