zoukankan      html  css  js  c++  java
  • 使用那各VUE的打印功能(print.js)出现多打印一个空白页的问题

    最近这段时间,用VUE写东西,有个打印功能。

    百度了一下,铺天盖地的VUE打印的两种实现方法。

    很感激这些千篇一律的帖子,虽然不知道他们是否真的用过,还是只是复制粘贴。

    至少这些帖子告诉我,是有两个可以选择的,并且多看几篇帖子,总算把这两个打印方法,都试了一遍。

    下面简单总结一下:

    先说结论:请使用第二种方法,下载print.js到本地,然后放到项目中导入。原因后边说。

    一、使用vue-print-nb方法

    具体的使用这里就不详细说明了,因为网上真的太多太多了。千篇一律的。

    在本地直接npm安装一下就好。按照步骤一点一点来。

    然后在自己项目的配置文件里import进来就可以了。

    使用就更简单了。选好区域直接调用即可。

    打印效果超出预期的好。感谢这个插件的作者!

    二、使用print.js方法

    这个简单的程度更不用说了。就是一个JS下载下来,直接放到项目中(libs目录)

    然后同样import导入,并use就可以使用了。

    使用方法同样简单,只是写法上看着比第一种感觉上low那么一丢丢,但是真的是超级的简单好用哦。

    同时,效果上和第一个基本上一模一样。

    使用说完了,说说问题吧。

    对比:

    1、安装和使用

    方法一,需要npm安装,说简单也简单,说复杂也复杂。并且所有项目参与者都要安装,否则会报错。

    方法二,不需要做什么,只要有一个搞到项目中,其他人版本库中拉代码即可。维护简单方便。

    2、调试和维护

    方法一,源码相对属于不直接公开的,想看需要到node_modules目录去找,修改日后维护成本稍微高点。

    方法二,源码就一个print.js文件,在项目目录中,随时都可以看到,随时可以修改调试,简单方便。并且代码还少哦。

    3、使用时的BUG

    方法一,存在跨域的BUG,就是link里边的样式路径必须是相对路径或者与站点同域,否则会垮掉。

    方法二,目前没有发现使用上的BUG。

    最后,应用中碰到的问题

    最开始使用的是方法一,看着高端。哈哈……但是本坑惨了,因为本地调试和测试环境都没问题。所以一直也就没有发现BUG。直到上线后,再测试才发现问题。因为生产环境CSS是走CDN的,域名不一致了,导致JS报错。打印功能垮掉。

    最终临时下掉打印功能,还要想业务部门解释。毕竟答应没做到么。

    接下来,解决问题。通过查看源码,不断调试验证,最终发现,就是类似跨域的问题,导致读取link里边的文件失败。报错后终止了JS的执行。当然,BUG原因也找到了,改是能改,但是比较麻烦,毕竟源码不在项目中。

    然后,尝试使用print.js来实现打印,先确认一下,至少不会有方法一的BUG,然后也做了各测试,确实没有方法一的问题。所以最终我们现在使用这个。但是,因为还没有正式使用,也没有发现问题。

    等以后用久了,再看看。不过,源码在项目中,修改多少也方便点儿。

    还有个问题,就是打印预览时,发现多出一个空白页,打印时也会真的打印一个空白页出来。

    经过各种折腾,真没发现原因,网上搜索了一下,真心解决办法很少,有一个说的不明不白,有一个说的是body的默认margin的默认值问题。

    但是可惜,我这边都不是,所以,在没有办法下,只能自己一点点的调试。什么情况下会有东西超出页面。

    不知道最终原因(原理),但是解决了,就是高度100%的问题。页面打印部分有标签高度设置了100%,但是视觉上没有超出,打印时,莫名的就影响了,多出一个空白页。

    把这个高度100%删除,就没有空白页了。

    所以,出现空白页,注意两点:1、body的margin属性改成0;2、找到height属性为100%的尝试修改成其他值或者删除该属性。

  • 相关阅读:
    vuejs 实战 双向数据绑定
    ubuntu16安装cuda,cudnn,gpu版opencv
    ubuntu编译安装nginx并且配置流服务器
    安装使用mongodb
    c++ 编译安装ffmpeg
    apache2 日志文件太大的解决方案
    sql注入
    制作自己的电子词典
    python传递可变参数
    工厂模式
  • 原文地址:https://www.cnblogs.com/leafinwind/p/11328066.html
Copyright © 2011-2022 走看看