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 相关文章推荐
父窗口获取弹出子窗口文本框的值
Jun 27 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
javascript实现画不相交的圆
Apr 07 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
js微信分享实现代码
Oct 11 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 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获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
详解Python验证码识别
2016/01/25 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
python实现最速下降法
2020/03/24 Python
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
金融专业推荐信
2013/11/14 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
给领导的检讨书
2014/02/16 职场文书
幼儿园运动会口号
2014/06/07 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
四风自我剖析材料
2014/09/30 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL