vue中使用vue-print.js实现多页打印


Posted in Javascript onMarch 05, 2020

本文主要介绍了vue项目中使用print.js打印,解决多页,分页,打印预览样式修改等问题。

引入安装vue-print.js

cnpm i vue-printjs --save-dev

解决打印多页只出现一页问题

由于打印插件存在问题,如果打印文件超出一页,只显示一页,所以我们需要修改print.js源文件,所以只能手动下载vue-print.js到本地,做一些修改,然后引入到项目中,不能使用npm安装

下载 print.js

https://github.com/zxc19890923/print/blob/master/print.js
在src目录下面创建plugins/print/Print.js文件保存插件内容

修改 print.js

// 搜索getStyle方法,添加:str += "<style>html,body,div{height: auto!important;font-size:14px}</style>";

 getStyle: function () {
  var str = "",
   styles = document.querySelectorAll('style,link');
  for (var i = 0; i < styles.length; i++) {
   str += styles[i].outerHTML;
  }
  str += "<style>" + (this.options.noPrint ? this.options.noPrint : '.no-print') + "{display:none;}</style>";
  str += "<style>html,body,div{height: auto!important;font-size:14px}</style>";

  return str;
 },

main.js中引入插件

...
import Print from './plugins/print/Print'
Vue.use(Print)

vue文件中的使用

<div class="show">
    这是展示的需要打印的内容,给用户看的。
  </div>
  <div ref="print" class="recordImg" id="print">
    这里是需要打印的内容,出现在打印预览的界面,这里的样式需要写在 @media print {}里面 如果需要设置预览页规则,页脚等样式 @page {} 
    <div class="no-print">不需要打印的内容</div>
    <div class="do-not-print-div">不要打印我</div> 
    <button @click="printContext">打印</button>
  </div>
  ...
  <script>
    ...
    method: {
      printContext () {
        this.$print(this.$refs.print)
      }
      // 不打印方法1. 添加no-print样式类
      // 不打印方法2. this.$print(this.$refs.print,{'no-print':'.do-not-print-div'})
    }
  </script>

最后
1、为了打印全部,手动下载插件并修改。
2、打印内容样式需要写在 @media print {}中
3、this.$print(),不需要打印内容可以通过css,js两种方法控制。

到此这篇关于vue中使用vue-print.js实现多页打印的文章就介绍到这了,更多相关vue print.js 多页打印内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
基于jquery的获取浏览器窗口大小的代码
Mar 28 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
jquery 动态合并单元格的实现方法
Aug 26 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
Feb 28 Javascript
通过js修改input、select默认字体颜色
Apr 19 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
微信小程序的日期选择器的实例详解
Sep 29 Javascript
基于jquery实现九宫格拼图小游戏
Nov 30 jQuery
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
koa2的中间件功能及应用示例
Mar 05 #Javascript
微信小程序利用for循环解决内容变更问题
Mar 05 #Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 #Javascript
js将URL网址转为16进制加密与解密函数
Mar 04 #Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 #Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 #Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 #Javascript
You might like
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
php分页函数示例代码分享
2014/02/24 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
js实现旋转木马效果
2017/03/17 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python中动态创建类实例的方法
2017/03/24 Python
python 统计代码行数简单实例
2017/05/04 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
对numpy中轴与维度的理解
2018/04/18 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
函数指针的定义是什么
2016/08/14 面试题
什么是数据抽象
2016/11/26 面试题
what is the difference between ext2 and ext3
2015/08/25 面试题
幼儿园亲子活动方案
2014/01/29 职场文书
中国好声音广告词
2014/03/18 职场文书
小学运动会班级口号
2014/06/09 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
公证处委托书
2015/01/28 职场文书
社区节水倡议书
2015/04/29 职场文书