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 相关文章推荐
JavaScript常用验证函数实例汇总
Nov 25 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
bootstrapValidator自定验证方法写法
Dec 01 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
深入理解vue中slot与slot-scope的具体使用
Jan 26 Javascript
Js中使用正则表达式验证输入是否有特殊字符
Sep 07 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
JS快速实现简单计算器
Apr 08 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限制ip地址范围的方法
2015/03/31 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
PHP多维数组排序array详解
2017/11/21 PHP
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
python属于软件吗
2020/06/18 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
大学运动会通讯稿
2014/01/28 职场文书
大学校运会广播稿
2014/02/03 职场文书
求职面试个人自我评价
2014/02/28 职场文书
合作协议书怎么写
2014/04/18 职场文书
小学英语课后反思
2014/04/26 职场文书
美术社团活动总结
2014/06/27 职场文书
婚前协议书标准版
2014/10/19 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
毕业实习计划书
2015/01/16 职场文书
公积金接收函格式
2015/01/30 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers