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 相关文章推荐
js no-repeat写法 背景不重复
Mar 18 Javascript
起点页面传值js,有空研究学习下
Jan 25 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
javascript 用函数实现继承详解
May 28 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
js比较两个单独的数组或对象是否相等的实例代码
Apr 28 Javascript
JavaScript中将值转换为字符串的五种方法总结
Jun 06 Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 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中获取文件扩展名的N种方法小结
2012/02/27 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
jQuery使用手册之一
2007/03/24 Javascript
JavaScript 私有成员分析
2009/01/13 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
js post提交调用方法
2014/02/12 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
详解jquery和vue对比
2019/04/16 jQuery
vue权限问题的完美解决方案
2019/05/08 Javascript
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
开办饭店创业计划书
2013/12/28 职场文书
工厂实习感言
2014/01/14 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
国旗下演讲稿
2014/05/08 职场文书
授权委托书(完整版)
2014/09/10 职场文书
工商局个人工作总结
2015/03/03 职场文书
贫困生证明范文
2015/06/16 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
如何通过cmd 连接阿里云服务器
2022/04/18 Servers