对于B/S架构的项目中,Web打印最是让程序员头痛的技术,在这次项目中运用了第三方控件ScriptX解决了此技术包括各种汇总表,详细清单等等,但最大弊端就是打印的格式是死的,你要打印出怎样的格式必须自己来做,还有就是打印分页,它是按你设置的纸张大小来分的,所以必须人为控制,ScriptX控件所需文件ScriptX.cab。(ScriptX下载地址http://www.meadroid.com/scriptx/freedep.asp )
打印功能使用:
⑴ 用户在客户端单击“打印”按钮,第一次使用打印会弹出如下对话框
⑵ 单击“是”按钮,此时会把控件ScriptX下载到本机
⑶ 在打印窗口中有大标题、打印条件、打印列表,单击“打印”按钮进入打印浏览界面。
⑷ 单击“Print”按钮,听打印机声音响起。
二、 一个简单的ScriptX控件使用实例
1.界面文件 WebExample.aspx (其中kg.css是界面样式在这里就不介绍了)
以下为引用的内容: 〈%@ Page language="c#" Codebehind="WebExample.aspx.cs" AutoEventWireup="false" Inherits="WebPrint.WebExample" %> 〈!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 〈HTML> 〈HEAD> 〈title>一个简单的ScriptX打印〈/title> 〈meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> 〈meta name="CODE_LANGUAGE" Content="C#"> 〈meta name="vs_defaultClientScript" content="JavaScript"> 〈meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> 〈LINK href="kg.css" type="text/css" rel="stylesheet"> 〈/HEAD> 〈body MS_POSITIONING="GridLayout"> 〈form id="WebExample" method="post" runat="server"> 〈TABLE width="100%" height="100%"> 〈tr> 〈td height="100"> 〈/td> 〈/tr> 〈tr> 〈td style="HEIGHT: 14px" align="center"> 〈div id="divTableResult" name="divTableResult"> 〈asp:Label id="Label1" runat="server" Width="232px" Height="32px" Font-Size="Large">欢迎使用ScriptX打印〈/asp:Label> 〈/div> 〈/td> 〈/tr> 〈tr> 〈td align="center" valign="top"> 〈div id="divChartResult" name="divChartResult"> 〈asp:Image id="Image1" runat="server" ImageUrl="win2000.gif">〈/asp:Image> 〈/div> 〈/td> 〈/tr> 〈tr> 〈td align="center" valign="top"> 〈input id="btnPrint" style="WIDTH: 32px; HEIGHT: 19px" onclick="printResult();" type="button" size="1" value="打印" name="btnPrint"> 〈/td> 〈/tr> 〈/TABLE> 〈/form> 〈script language="javascript"> function printResult() { //针对不同模块,设置打印参数 var title = 'ScriptX打印';//报表名称 var orien = 'true';//打印页面方向,true:纵向打印/false横向打印 //参数设置结束 var strURL; title = escape(title); //condition = escape(condition); strURL = 'printContainer2.aspx?title='+title+'&orien='+orien; window.open(strURL,'printResult','height=600, width=800, top=0, left=50,toolbar=no , menubar=no, scrollbars=yes, resizable=no, location=no, status=no'); } 〈/script> 〈/body> 〈/HTML> |
说明:
以下为引用的内容: ⑴ 〈div id="divTableResult" name="divTableResult">和〈div id="divChartResult" name="divChartResult"> 是在printContainer2.aspx文件中定义的传值标签,因此必须要有。 ⑵ printResult()方法用来声明传值内容,具体在方法中已说明
2.打印界面 printContainer2.aspx (其中print.css是打印样式就不介绍了) |
以下为引用的内容: 〈html> 〈head> 〈title>ScriptX 打印〈/title> 〈meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> 〈meta name="CODE_LANGUAGE" Content="C#"> 〈meta name="vs_defaultClientScript" content="JavaScript"> 〈meta http-equiv="content-type" content="text/html; charset=gb2312"> 〈meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> 〈link href="kg.css" rel="stylesheet" type="text/css"> 〈link href="print.css" rel="stylesheet" type="text/css" media="print" > 〈script FOR=document event="onclick"> if(event.srcElement.tagName=='A'){ //alert('a click!'); event.cancelBubble = true; }
〈/script> A { COLOR: #000000;TEXT-DECORATION: none; FONT-SIZE: 8pt;FONT-FAMILY: "";} 〈/style> var needcon=''; //用于把父窗体的divTableResult和divChartResult标签的值分别转入divTableContainer 和divChartContainer标签中 //用于调用设置打印参数的方法和显示预览界面 |