基於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...

  有好辦法的歡迎拍磚啊

  誰知道以后會不會有更變態的需求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM