vue 打印

vue 方法

第一种方法:通过npm 安装插件

1.安装 npm install vue-print-nb --save
2.引入 安装好以后在main.js文件中引入

import Print from 'vue-print-nb'
Vue.use(Print);  //注册

3.现在就可以使用了

<div id="printTest" >
    <p>锄禾日当午</
    <p>汗滴禾下土 </
    <p>谁知盘中餐</p>
    <p>粒粒皆辛苦</p>
</div>
<button v-print="'#printTest'">打印</button>

如果内容打印不全,在打印操作时点击更多设置,然后设置缩放
验证:vue-print-nb 使用某些浏览器点击没效果(不知道什么原因)

第二种方法:手动下载插件到本地

插件地址:https://github.com/xyl66/vuePlugs_printjs

import Print from '@/plugs/print'
Vue.use(Print) // 注册
<template>
  <section ref="print">
    打印内容
    <div class="no-print">不要打印我</div>
  </section>
</template>
this.$print(this.$refs.print) // 使用

注意事项 需使用ref获取dom节点,若直接通过id或class获取则webpack打包部署后打印内容为空
指定不打印区域
方法1. 添加no-print样式类

<div class="no-print">不要打印我</div>

方法2. 自定义类名

<div class="do-not-print-me-xxx">不要打印我</div>
this.$print(this.$refs.print,{'no-print':'.do-not-print-me-xxx'}) // 使用

未试验: print.jsvue-easy-print

jquery 方法

jquery-print.js

1、index.html 引入

<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/jQuery.print/1.5.0/jQuery.print.min.js"></script>

2、webpack.base.conf.js

externals: {
    "vue": "Vue",
    "element-ui": "ELEMENT",
    'jquery':'window.jQuery'
}

注:需要全局化jQuery。
3、使用

$("#printObject").print();
jquery.jqprint.js

使用方法同上。

javascript 方法

页面打印
function printPage(){// 此处函数名不能为print,因为会与window.print()形成无限递归
    window.print();
}
区域打印

准备工作:用:<!- -startprint- ->和<!- -endprint- ->“圈”住要打印的代码段

function printArea(){
    var bdHtml=window.document.body.innerHTML;
    var sprnstr="<!--startprint-->";
    var eprnstr="<!--endprint-->";
    var prnHtml=bdHtml.substring(bdHtml.indexOf(sprnstr)+17);/*去掉前面的部分*/
    prnHtml=prnHtml.substring(0, prnHtml.indexOf(eprnstr));/*去掉后面的部分*/
    var myWindow=window.open('', '', '');/*打开新的浏览器窗口(选项卡)*/
    myWindow.document.body.innerHTML=prnHtml;
    myWindow.print();
}

注意:CSS的@media print{} 控制打印时的样式、或者写在元素上
分页:<div style="page-break-before:always;"><br /></div>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 概述 如何vue项目中实现打印功能,GitHub上发现一个插件,既优雅又方便。 vuePlugs_print...
    红薯爱帅阅读 47,747评论 22 4
  • 1.使用vue-print-nb插件打印1.1 安装 1.2 配置在main.js文件中注册 1.3 使用 2.v...
    杨啊杨_fb52阅读 4,286评论 0 0
  • 1.使用vue-print-nb插件打印1.1 安装 1.2 配置在main.js文件中注册 1.3 使用 2.v...
    杨啊杨_fb52阅读 1,846评论 0 1
  • JS原生有自带的window.print打印方法,这里是个vue打印的插件,用于打印,简单,快速,方便,轻便的指令...
    呆木的小蝎阅读 10,945评论 6 2
  • 附上 print.js 地址: print.js 1、注册插件 1.1. HTML设置ref,可指定区域打印 注意...
    yonglei_shang阅读 5,737评论 0 1