標籤:style blog http java io for 問題 ar
應用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名
三、編寫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屬性是著作權資訊,必須寫。