開通VIP,暢享免費電子書等14項超值服
首頁
好書
留言交流
下載APP
聯(lián)系客服
2013.12.06
在項目開發(fā)中,經(jīng)常會用到頁面打印的功能,在ASP.NET環(huán)境下推薦一款web打印控件smsx.cab。
使用方法:一般會先定義一個用于打印的母版頁(Print.Master),在母版頁上做好布局,包括頁面布局、js 的引用、smsx.cab控件加載、打印和預(yù)覽按鈕的放置。
下載鏈接:http://download.csdn.net/detail/nxgliming/6668385
母版頁(Print.Master):
1 <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Print.master.cs" Inherits="PdSecrity.Pages.Print.Print" %> 2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml"> 5 <head runat="server"> 6 <title>打印</title> 7 <asp:ContentPlaceHolder ID="head" runat="server"> 8 </asp:ContentPlaceHolder> 9 <style media="print">10 .Noprint11 {12 display: none;13 }14 .w3cbbs15 {16 page-break-after: always;17 }18 </style>19 </head>20 <script src="<%= Page.ResolveClientUrl("~/PdSecrity/Scripts/jquery-1.10.2.min.js")%>"21 type="text/javascript"></script>22 <script src="<%= Page.ResolveClientUrl("~/PdSecrity/Scripts/Print.js")%>" type="text/javascript"></script>23 <body>24 <form id="form1" runat="server">25 <!--下面的這個objec標(biāo)簽就是加載t加載smsx.cab控件用-->26 <object id="factory" style="display: none" codebase="<%= Page.ResolveClientUrl("~/PdSecrity/Scripts/smsx.cab")%>#VVersion=6,6,440,26"27 classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext>28 </object>29 <script>30 $(document).ready(function () {31 //加載打印設(shè)置32 SetPrintSettings();33 });34 </script>35 <table align="center">36 <tr class="Noprint">37 <td>38 <input id="Button1" type="button" value="打印" class="btnbg" onclick="Print();" />39 <input id="Button2" type="button" value="預(yù)覽" class="btnbg" onclick="Preview();" />40 </td>41 </tr>42 <tr>43 <td>44 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">45 </asp:ContentPlaceHolder>46 </td>47 </tr>48 </table>49 </form>50 </body>51 </html>
Print.js,主頁用于打印的一些設(shè)置
1 //預(yù)覽 2 function Preview() { 3 document.all.factory.printing.Preview(); 4 } 5 6 function Print() { 7 document.all.factory.printing.Print(false); //無確認(rèn)打印,true時打印前需進(jìn)行確認(rèn) 8 } 9 10 function PrintSetup() {11 document.all.factory.printing.PageSetup();12 }13 14 function SetPrintSettings() {15 // -------------------基本功能,可免費使用-----------------------16 document.all.factory.printing.header = ""; //頁眉17 document.all.factory.printing.footer = ""; //頁腳18 ////document.all.factory.printing.SetMarginMeasure(1); //頁邊距單位,1為毫米,2為英寸//邊距設(shè)置,需要注意大部分打印機(jī)都不能進(jìn)行零邊距打印,即有一個邊距的最小值,一般都是6毫米以上19 //設(shè)置邊距的時候時候如果設(shè)置為零,就會自動調(diào)整為它的最小邊距20 document.all.factory.printing.leftMargin = 7; //左邊距21 document.all.factory.printing.topMargin = 7; //上邊距22 document.all.factory.printing.rightMargin = 7; //右邊距23 document.all.factory.printing.bottomMargin = 7; //下邊距24 document.all.factory.printing.portrait = true; //是否縱向打印,橫向打印為false25 //--------------------高級功能---------------------------------------------26 //document.all.factory.printing.printer = "EPSON LQ-1600KIII"; //指定使用的打印機(jī)27 //document.all.factory.printing.printer = "\\\\cosa-data\\HPLaserJ";//如為網(wǎng)絡(luò)打印機(jī),則需要進(jìn)行字符轉(zhuǎn)義28 ////document.all.factory.printing.paperSize = "A4"; //指定使用的紙張29 document.all.factory.printing.paperSource = "Manual feed"; //進(jìn)紙方式,這里是手動進(jìn)紙30 ////document.all.factory.printing.copies = 1; //打印份數(shù)31 ////document.all.factory.printing.printBackground = false; //是否打印背景圖片32 ////document.all.factory.printing.SetPageRange(false, 1, 3); //打印1至3頁33 //---------------------常用函數(shù)--------------------------------34 //document.all.factory.printing.Print(false); //無確認(rèn)打印,true時打印前需進(jìn)行確認(rèn)35 //document.all.factory.printing.PrintSetup(); //打印設(shè)置36 //document.all.factory.printing.Preview(); //打印預(yù)覽37 //document.all.factory.printing.WaitForSpoolingComplete(); //等待上一個打印任務(wù)完全送入打印池,在連續(xù)無確認(rèn)打印時非常有用38 //document.all.factory.printing.EnumPrinters(index); //枚舉已安裝的所有打印機(jī),主要用于生成打印機(jī)選擇功能39 }
最后,讓所需要打印的頁面都引用這個母版頁即可。
微信登錄中...請勿關(guān)閉此頁面