Web打印組件jatoolsPrinter


應用web化,不論對開發商,還是對用戶來說,實在是一種很經濟的選擇,因為基於web的應用,客戶端的規則很簡單,容易學習,容易維護,容易發布。但對程序員來說,因為瀏覽器的局限性,卻要面對很多挑戰。怎么樣來進行基於web的套打,就是這么一個令多數程序員頭痛不已的問題。
基於web的套打,難度在於要將瀏覽器中呈現的html,精確地打印到票據中,而且能夠實現對分頁位置的控制。下面就ie瀏覽器所能采用的套打解決方案,來個匯總分析,希望對大家有所幫助。

jatoolsPrinter 是一款實現網頁套打的免費工具。該工具的特點是可以直接對web頁面進行精確的分頁打印,這不僅使“會設計網頁就會做網頁套打”成為可能,也使項目經理們擺脫了預算緊張的壓力。jatoolsPrinter通過在網頁中嵌入控件,解決了web客戶端精確打印,批量打印,打印配置自動保留等問題。jatoolsPrinter 官方正式免費版,支持ie6+,http://printfree.jatools.com

功能特點:
真正免費,不加水印,沒有ip或域名限制,不限時間,兼容ie6+
無須注冊,下載即用
提供經過微軟數字簽名的cab自動安裝包,安裝更方便
長期升級保障,免費論壇支持,讓你無后顧之憂
穩定可靠,啟動速度遠勝同類產品
常用功能集於一身,簡約而不簡單,軟件大小只有84k

 

本文主要介紹jatoolsPrinter打印控件來完成web的打印功能,這個控件已經把打印功能封裝的非常好,主要是把這個控件引入,之后寫一些簡單的js代碼就能完成相應的打印功能。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <!-- 插入打印控件 -->
    <object id="jatoolsPrinter" classid="CLSID:B43D3361-D075-4BE2-87FE-057188254255"
        codebase="jatoolsPrinter.cab#version=5,7,0,0">
    </object>
    <script type="text/javascript">
        function doPrint(how) {

            //打印文檔對象
            var myDoc = {
                documents: document,    // 打印頁面(div)們在本文檔中
                copyrights: '傑創軟件擁有版權  www.jatools.com'         // 版權聲明必須
            };

            // 調用打印方法
            if (how == '打印預覽...')
                jatoolsPrinter.printPreview(myDoc);   // 打印預覽

            else if (how == '打印...')
                jatoolsPrinter.print(myDoc, true);   // 打印前彈出打印設置對話框

            else
                jatoolsPrinter.print(myDoc, false);       // 不彈出對話框打印
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id='page1' style='width:300px;height:300px;'>
    test
    </div>
    <input type="button" value="打印預覽..." onclick="doPrint('打印預覽...')"/>
    <input type="button" value="打印..." onclick="doPrint('打印...')"/>
    <input type="button" value="打印" onclick="doPrint('打印')"/>
    </form>
</body>
</html>

主要分幾個步驟:

一、引入打印控件jatoolsPrinter

<!-- 插入打印控件 --> <object id="jatoolsPrinter" classid="CLSID:B43D3361-D075-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=5,7,0,0"> </object>

二、給要打印的div取id名

image

三、編寫js代碼實現打印div的功能

(注意:在同一頁面中,有多個可打印文檔,他們可以用page_div_prefix屬性來區別page_div_prefix前綴+page+頁序號 構成可打印div的id,如前綴為 'report1' ,則找到以 'report1page1'為id的div作為文檔首頁該屬性,默認值為空)

注意事項:

1. 控件在打印指定div對象時,如果紙張太小不夠打印時,超出部分將被截掉(clip)。
2. 被指定的div中的內容,可以是html任何可見對象,圖片,flash,或文本等等。
3. 控件打印時,邊距可設,不設則取打印機默認值。
4. div的id必須連續,如果你的div,存在 'page1'、'page2'、'page4',而不存在'page3',則控件只打印前兩頁,'page4'不會被打印。
5. div對象在頁面中的位置,可以是隨意的,比如,page1顯示在page2后面,也是合法的。
6. 指定的div會被打印,沒被指定的html元素將不會被打印,比如,本示例中的‘打印’按鈕,不會被打印。
7. copyrights屬性是版權信息,必須寫。


免責聲明!

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



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