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 创建对象(常见的几种方法)
Nov 03 Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
Aug 26 Javascript
JS实现来回出现文字的状态栏特效代码
Oct 31 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
Vue.JS项目中5个经典Vuex插件
Nov 28 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
react-native android状态栏的实现
Jun 15 Javascript
小程序自定义模板实现吸顶功能
Jan 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对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
JS求解两数之和算法详解
2020/04/28 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
详解Python中for循环是如何工作的
2017/06/30 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
解决Python使用列表副本的问题
2019/12/19 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
体育教学随笔感言
2014/02/24 职场文书
第二课堂活动总结
2014/05/07 职场文书
妇女干部培训方案
2014/05/12 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
干部年终考核评语
2015/01/04 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
2019公司管理制度
2019/04/19 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
Nginx跨域问题解析与解决
2022/08/05 Servers