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 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
删除select中所有option选项jquery代码
Aug 12 Javascript
javascript获取元素CSS样式代码示例
Nov 28 Javascript
js中opener与parent的区别详细解析
Jan 14 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
实例详解JavaScript获取链接参数的方法
Jan 01 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
Apr 30 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
Nov 07 Javascript
javascript中Date对象的使用总结
Nov 21 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 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初学者头疼问题总结
2006/10/09 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
完美的php分页类
2017/10/24 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
自主实习接收函
2014/01/13 职场文书
施工材料员岗位职责
2014/02/12 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
个人贷款担保书
2014/04/01 职场文书
党的作风建设心得体会
2014/10/22 职场文书
学习心理学的体会
2014/11/07 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
企业法人代表证明书
2015/06/18 职场文书
门卫管理制度范本
2015/08/05 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
Python基础之Socket通信原理
2021/04/22 Python