web 批量打印


批量打印,同時打印多個頁面,有兩種思路:

第一種思路,將所有的頁面內容加載到一個頁面中,然后再打印。這種打印方式有幾個弊端,頁面的樣式會丟失,頁面太多同時加載到一個頁面中,數據量太大,響應時間很長,消耗的資源過大,很可能導致瀏覽器崩潰,最終打印失敗。針對這種打印方式的弊端,可以通過限制批量打印數量的方法來避免。但樣式的問題,似乎找不到解決方案。

第二種思路,調用每個頁面直接打印方法,逐個頁面打印。這種打印方式的弊端就是,調用每個頁面的打印方法都會彈出框,等待用戶確認打印才行。

1>第一種思路

第一步:將所有頁面通過iframe加載到一個頁面中,每個頁面一個iframe

第二部:抓取每個iframe中的內容,將其加載到一個新的窗口中,每個ifrmae中的內容在打印的時候都強制分頁

第三部:調用新窗口的打印方法。

代碼如下:

        $(function () {
            //在iframe中顯示需要打印的頁面,設置iframe的高度為自適應高度
            $("iframe").each(function () {
                $(this).load(function () {
                    $(this).height($(this).contents()[0].body.scrollHeight);
                });
            });
        });

        //將所有iframe中的內容都加載到一個新的窗口中,然后調用新窗口的打印方法
        function printAll() {
            var win = window.open('about:blank');
            var body = "";
            $("iframe").each(function (i) {
                var pageNextStr = '<div style="page-break-after: always;"></div>';
                var pageNext = $(pageNextStr);
                pageNext.append($(this).contents()[0].find("from")[0].innerHTML);
                body += pageNext[0].outerHTML;
            });
            win.document.body.innerHTML += body;
            win.print();
            win.close();
        }

  

 程序員的基礎教程:菜鳥程序員

 


免責聲明!

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



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