zoukankan      html  css  js  c++  java
  • 基于vue,打印机打印暂且处理

    基于vue单页面应用。暂且没找到合适的方案,什么vue-print  、jquery.print.js、jqprint.js、、canvas生成图片啊

    大多不能保证页面样式保持原样。

    所以,选择了最土的办法。

    走起

      window.print()

      嗯,各种问题又来了了了了了。直接调用window.print()会把整个页面都给打印。

      所以,

      依据业务重写媒体查询css。(无法保证以后还要改)

      @meida print

        专门定义控制打印显示样式,跟打印机相关的都写在它底下

      由于现在只进行弹窗内容区域打印。

      所以先把弹窗下面的内容整体隐藏显示。

      然后就只剩下整个的弹窗区域了。

      一般弹窗层次结构是最外框灰背景遮罩。嵌套外框,嵌套内容区域。

      因此,把弹窗遮罩灰背景设置白色

         把弹窗嵌套外框样式能消除的都去掉,

         把弹窗内容区域设置显示。

    细化隐藏

      当然内容区域还有一部分内容不想被打印,那就需要设置一个class专门隐藏打印样式

       .no-print  

         diaplay none

      哪里不要加哪里。

      此时打印基本接近完美(吧)。

    控制缩放

      经过打印测试,当打印区域超出800px的时候,a4纸是无法显示完整的。

      看别人的打印一般都是控制在800px以内,发现自己大多数弹窗都是大于800px,此时如果修改宽度,耗费时间及精力太长。

      基于谷歌浏览器,window.print()是有打印预览界面,缩放横竖排版好像js暂时没找到控制方法。由于弹窗宽度一定,测试了下缩放到62%的时候,打印区域基本完美了。用户又不会进行缩放?

      更可气的是,火狐及其他浏览器。都不存在打印预览页面。用户会了又怎样?

      百度一下发现,原来css也可以控制缩放

      zoom 0.62

    //全局打印样式
    @media print
        *
            color black !important
            border-color black !important
        body
            width auto !important
        #app-content
            display none
        .no-print
            display none
        .component-fullWrap
            background white !important
            overflow hidden
            zoom 0.62
            .component-inner
                .component-close
                    display none
                .com-formInfo
                    overflow hidden
                    .content-item
                        border none
                        width auto
                        display block
                        overflow hidden
                        .bigtitle
                            margin-top 0px
                            .biao-btn-group
                                display none 

    emmmm...

      有好办法的欢迎拍砖啊

      谁知道以后会不会有更变态的需求

  • 相关阅读:
    LeetCode(258):Add Digits
    LeetCode(7):Reverse Integer
    LeetCode(14):Longest Common Prefix
    LeetCode(58):Length of Last Word
    LeetCode(165): Compare Version Numbers
    LeetCode(20):Valid Parentheses
    LeetCode(125):Valid Palindrome
    Scala中Curring实战详解之Scala学习笔记-16
    Scala中SAM转换实战详解之Scala学习笔记-15
    Scala学习笔记-14
  • 原文地址:https://www.cnblogs.com/lggggg/p/7889394.html
Copyright © 2011-2022 走看看