随心所欲的Web页面打印技术 10(转载)

 

一.概述
  对基于B/S架构的应用程序而言,客户端的页面打印一直是比较头疼的问题,简单的做法是:1.使用IE的打印功能;2.使用水晶报表。但以上两种办法,都有很大的局限性,很难实现特殊要求的排版和精确的定位,所以不能满足一些特殊客户的BT要求。为此,本人总结了自己在使用Web打印上的一点经验,和大家分享。
  本文涉及以下技术:javascript、ActiveX、ASP.NET、GDI+。

二.基本架构
  首先,我们不能使用IE的打印功能,必须自己设计‘打印’按钮。很多人习惯将‘打印’按钮放在要打印的页面上,打印时为了不把这个按钮打印出来,采用办法如下:1.打印前隐藏按钮;2.打印;3.显示按钮。
我觉得这样比较麻烦,所以我采用框架。一共有三个页面:
1.main.htm :框架页面,上面是打印按钮,下面是要显示的页面。
2.header.htm :标题栏,至少包含一个打印按钮。
3.report.aspx :要打印的页面,由用户生成。

//main.htm
<html>
 <head>
  <title></title>  
 </head> 
  <frameset rows="10%,90%" frameborder="0" border="0" frameSpacing="0">
  <frame id="header" name="header" src="Header.htm" noresize scrolling="no">
  <frame id="report" name="report" src="Report.aspx" noresize scrolling="auto">
 </frameset> 
</html>

//header.htm
<html>
 <head>  
  <script id=clientEventHandlersJS language=javascript>
  <!--
  function btnPrint_onclick()
    
     parent.report.focus();
     parent.report.print();  
  }
  //-->
  </script>
 </head>
 <body> 
  <INPUT id="btnPrint" type="button" value="Print" name="Print" οnclick="return btnPrint_onclick()">  
 </body>
</html>

  这样,在点击‘打印’按钮时,将直接打印report.aspx页面的内容,既简单又直观。

三.打印
 要完全控制打印,就必须由程序设定页眉、页脚、页边距。每个客户端的IE设置都不尽相同,你可以要求你的客户修改他们的打印设置为你指定的值,显然这不现实。所以正确的做法是:
1.备份客户打印页面设置;
2.设置页眉页脚上下左右边距为自己需要的值;
3.打印;
4.恢复原来的打印页面设置。

 这里用到一个叫ScriptX的控件。你需要下载一个文件:smsx.cab,下载地址:http://www.meadroid.com/scriptx/sxdownload.asp。这个地址并不能保证长期有效,你可以在搜索引擎上搜索‘ScriptX’以获得更多相关信息。

在“header.htm”中增加该控件的引用:
<OBJECT id="factory" style="DISPLAY: none" codeBase="http://localhost/WebApplication1/smsx.cab#VVersion=6,3,434,12"
 classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext>
</OBJECT>
注意CodeBase指向你的实际存放文件的位置,在客户端第一次浏览该页面时,将下载并安装该控件,请确定客户端的安全设置允许安装控件。
那么此时 header.htm 的内容如下。

//header.htm
<html>
<head>
 <script id="clientEventHandlersJS" language="javascript">
 <!--
 function btnPrint_onclick()
 {
  //备份客户打印机设置
   var h = factory.printing.header;
   var f = factory.printing.footer;
   var t = factory.printing.topMargin;
   var b = factory.printing.bottomMargin;
   var l = factory.printing.leftMargin;
   var r = factory.printing.rightMargin;
 
   //设置页眉页脚上下左右边距 
   factory.printing.header = "";
    factory.printing.footer = "";
    factory.printing.topMargin="0";
   factory.printing.bottomMargin="0";
   factory.printing.leftMargin="0";
   factory.printing.rightMargin="0";
 
   //打印
   parent.report.focus();
   parent.report.print()
 
   //恢复原来的打印设置
   factory.printing.header = h;
   factory.printing.footer = f;
    factory.printing.topMargin=t;
   factory.printing.bottomMargin=b;
   factory.printing.leftMargin=l;
   factory.printing.rightMargin=r; 
 }
 //-->
 </script>
 
 <OBJECT id="factory" style="DISPLAY: none" codeBase="http://localhost/WebApplication1/smsx.cab#VVersion=6,3,434,12"
  classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext>
 </OBJECT>
</head>
<body bgColor="#9999cc">
 <INPUT id="btnPrint" type="button" value="Print" name="Print" οnclick="return btnPrint_onclick()">   
</body>
</html>

  此时,不管客户端IE设置如何,都能正确打印页面,打印内容将完全取决于页面:report.aspx。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 超声随心所欲是一款功能强大的音频编辑软件,它是专门为Windows 10系统设计的。它提供了丰富的音频编辑工具和效果,可以用于录音、剪辑、混音等应用。 超声随心所欲Win10版具有直观的界面和简单易用的操作方式,即使是初学者也可以轻松上手。它支持多种音频格式的导入和导出,用户可以根据自己的需要选择合适的格式进行保存和分享。 此外,超声随心所欲还提供了多种音频效果和滤波器,包括均衡器、压缩器、混响等。用户可以根据自己的喜好和需求对音频进行调整和优化,使其达到更高的音质和效果。 超声随心所欲Win10版还支持实时录音和实时效果处理,用户可以在录制音频的同时进行实时的音频编辑,方便快捷。此外,它还提供了多条音轨的支持,用户可以将不同的音频素材导入到不同的音轨中,并进行混合和调整。 总而言之,超声随心所欲Win10版是一款功能齐全、操作简单的音频编辑软件,适用于Windows 10系统的用户。不论是专业人士还是音乐爱好者,都可以使用它来进行音频录制和编辑,实现自己的创作梦想。 ### 回答2: 超声随心所欲Win10版是一款流行的超声波探测仪器的软件。这个软件提供了许多功能和工具,使用户可以轻松地进行各种超声波实验和研究。 首先,超声随心所欲Win10版具有简单易用的界面,用户可以轻松找到需要的功能。软件中提供了各种探头和传感器的选项,用户可以根据实验需求进行选择和配置。 其次,这个软件拥有强大的数据处理和分析功能。用户可以通过它来收集、存储和处理实验数据。软件中提供了各种图表和图像分析工具,帮助用户更好地理解实验结果,并做出准确的判断和决策。 此外,超声随心所欲Win10版还支持实时监测和追踪功能。用户可以实时观察实验过程中的数据变化,以及相关参数的调整。这对于调整实验条件和获得更准确的结果非常有帮助。 最后,超声随心所欲Win10版还具有多种导出和共享功能。用户可以将实验数据和分析结果导出为Excel、PDF或其他常见格式,方便与他人分享和合作。 总的来说,超声随心所欲Win10版是一款功能丰富、易于使用的超声波探测软件。它的便捷性和强大的数据处理功能使得用户可以更好地进行超声波实验和研究。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值