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 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
JavaScript自定义数组排序方法
Feb 12 Javascript
原生js和jquery实现图片轮播淡入淡出效果
Apr 23 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 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代码的50个实用技巧必备(下)
2016/01/22 PHP
ejs v9 javascript模板系统
2012/03/21 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
Python splitlines使用技巧
2008/09/06 Python
python操作xml文件示例
2014/04/07 Python
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Python线程的两种编程方式
2015/04/14 Python
Python正则捕获操作示例
2017/08/19 Python
Django实现表单验证
2018/09/08 Python
对python函数签名的方法详解
2019/01/22 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
《都江堰》教学反思
2014/02/07 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
css3 文字断裂效果
2022/04/22 HTML / CSS