页面打印技术总结

一.概述
  对基于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" onclick="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>

时间: 2025-01-26 17:52:12

页面打印技术总结的相关文章

PB中数据窗口的精确页面打印技术

1.引言 自PowerBuild4.0问世以来,以其简洁高效的集成开发环境.强大的数据窗口技术.(几乎)无所不能的数据库访问能力,越来越受到编程人员的青睐.据Sybase自己的统计,目前全球有60万程序员和系统分析人员在使用他们的Powerbuilder和S-designer,进行各种类型的应用程序开发.最新发布的PowerBuilder6.0族系列开发工具,直接支持ActiveX技术.ServerPush技术,对分布式计算模型的定义更加明确,实现更为简便,并可以利用数据窗口直接生成HTML格式

ASP.NET页面打印技术的总结

网络打印概述 B/S结构导致了Web应用程序中打印的特殊性. 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印文档的生成 1.客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印.通过分析源文档的内容,可以生成打印目标文档. 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定. 2.服务器

关于ASP.NET页面打印技术的总结

B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印文档的生成 • 1.客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印.通过分析源文档的内容,可以生成打印目标文档. 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定. • 2.服务

关于ASP.NET页面打印技术的常用方法总结_实用技巧

B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印文档的生成 • 1.客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印.通过分析源文档的内容,可以生成打印目标文档. 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定. • 2.服务

一起谈.NET技术,关于ASP.NET页面打印技术的总结

B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印文档的生成 • 1.客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印.通过分析源文档的内容,可以生成打印目标文档. 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定. • 2.服务

Java的打印技术

Java的打印功能 DeveloperWork上分享的一篇讲解Java打印技术的文章 和  Oracle上的关于Printing的Guide : 主要用到两个包 java.awt.print and javax.print The basic printing operations are represented in the following sections: A Basic Printing Program – this section describes the Printable i

SQL Server静态页面导出技术1

server|静态|页面 本段文章节选自铁道出版社新出的<用BackOffice建立Intranet/Extranet应用>一书(现已在海淀图书城有售).本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用.通过它您将掌握NT的安装和设置.使用IIS建立Web站点.通过ILS建立网络会议系统.用Exchange建立企业的邮件和协作系统.用SQL Server建立Web数据库应用.用Proxy Server建立同Internet安全可靠的连接.用M

SQL Server静态页面导出技术2

server|静态|页面 本段文章节选自铁道出版社新出的<用BackOffice建立Intranet/Extranet应用>一书(现已在海淀图书城有售).本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用.通过它您将掌握NT的安装和设置.使用IIS建立Web站点.通过ILS建立网络会议系统.用Exchange建立企业的邮件和协作系统.用SQL Server建立Web数据库应用.用Proxy Server建立同Internet安全可靠的连接.用M

7种在页面优化技术 深SEO关键字和链接关系

很多站长都知道基本的搜索引擎的页面优化技术,但深SEO(搜索引擎优化)很少想过.大家都知道,你需要包含你的关键词在你的文章的标题,meta描述,标签,和在你的文章本身.但更精细的细节呢? 建立联系与深层链接是一样重要的,因为从你的网页链接和任何指向您的网站的链接将有助于提高你的搜索引擎排名.如果你是认真对待你的SEO和链接建设策略,你必须确保一些来自深层链接的链接. 1.管理者尝试欺骗搜索引擎,通过编写少量的内容,基本上页的其余部分留与不相关的内容.做的工作,并欺骗搜索引擎,但显然这已经不再是一