jqprint的網頁打印,打印預覽可以包含圖片


自己負責的模塊需要有個試卷打印的功能,需要將網頁特定范圍內的內容打印出來,所以選擇了jquery.jqprint腳本

用起來也非常簡單。

    //打印
    $("#printPage").jqprint({
        debug: false,//如果是true則可以顯示iframe查看效果,默認是false
        importCSS: true,//true表示引進原來的頁面的css,默認是true。
        printContainer: true,//表示如果原來選擇的對象必須被納入打印,默認是true。
        operaSupport: true///表示如果插件也必須支持歌opera瀏覽器,默認是true。
    });

 

但是遇到一個問題,就是在頁面有很多圖片的時候,用谷歌瀏覽器打印預覽的時候,預覽的頁面不會顯示所有的圖片,這樣打印出來也沒有顯示圖片。

查來查去,只能是jqprint腳本的問題,最后多次測試,發現將腳本里面

setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);

的時間從1000調至3000就會顯示所有圖片。

雖說找到了原因,程序跑通了,但是原理還是不知道,希望有人能看到這篇隨筆來指點一下。

我猜應該是打印預覽也是慢慢加載的,如果給的時間多的話,圖片在這個時間能加載出來,就會在打印預覽時出現。

 

這個問題還是沒有警醒的看,其實設置成3000還是不能應對所有情況。應該按照打印試卷的頁數來算,這個計時的時間就是頁數×200。這樣就足夠了

setTimeout(function () { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } LoadingEnd(); }, pagenumber * 100 > 2000 ? pagenumber * 100 : 2000);


免責聲明!

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



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