B/S程序中WEB打印的完美解决方案
来源:互联网 发布:视图中增加字段sql 编辑:程序博客网 时间:2024/06/09 22:31
方案一:ScriptX打印组件
方案二:WsReport打印组件
我们首先来说一下方案一:
听说这个组件已经是2006年的事情了,那时候自己为了开发一个事业单位的办证系统用到了定制格式打印功能,为了解决此问题,因此在破解了wsreport组件,并且在CSDN中对外公布了出来,没想到这一公布颇具波澜,很多朋友纷纷向我索要此组件,其中有一位朋友提到了这个scriptx,说其功能如何强大,可惜是美国人开发的,读不懂英文,所以没有办法使用。因此让我来研究一下,但是一直以来我的时间一向比较紧迫,所以直到今天用到此组件的时候才不得已啃了这块硬骨头,当你进入scriptx的官方网站的时候,看了他的使用说明会让你一头雾水,莫不这头脑,并且如果按照他提供的实例程序来运行测试程序,也是根本就不能通过的,看了半天让我晕晕乎乎的摸不着北。
最后不得已,只有放弃官方的使用说明,然后结合自己的经验进行测试,当然结果是可想而知的,最终是成功了。我所采用的方法是仅仅使用官方提供的最新版本的.cab文件,cab文件是一个封包文件,该文件往往包含多个文件在其内,即通常所说的客户端activex,当用户第一次浏览网站的时候,该cab文件会自动下载并安装到客户端的电脑上,务须在服务器端注册,因此使用非常简单。闲话少叙,言归正传,让我们首先去官方下载cab文件,然后看如下代码就明白了。
<!--这里调用控件ScriptX.cab-->
<object id="factory" style="DISPLAY: none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.a.com/smsx.cab#Version=6,3,434,26"></object>
<SCRIPT defer>
//用于设置打印参数
function printBase() {
factory.printing.footer = "页眉" //页眉
factory.printing.footer = "页脚" //页脚
factory.printing.portrait = false //true为纵向打印,false为横向打印
factory.printing.leftMargin = 1.5 //左页边距
factory.printing.topMargin = 0.5 //上页边距
factory.printing.rightMargin = 0.5 //右页边距
factory.printing.bottomMargin = 1.0 //下页边距
}
//用于调用设置打印参数的方法和显示预览界面
function printReport(){
printBase();
//window.print();
factory.printing.Preview();
}
//使界面最大化
maxWin();
function maxWin()
{
var aw = screen.availWidth;
var ah = screen.availHeight;
window.moveTo(0, 0);
window.resizeTo(aw, ah);
}
</SCRIPT>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" bordercolor="#FFFFFF">
<tr bordercolor="#FFFFFF">
<td >
<table width="70%" border="0" cellspacing="0" cellpadding="2" align="center">
<tr>
<td align="center"><font size="5" face="宋体"><b>查询打印</b></font></td>
</tr>
<tr>
<td align="center">
<div id="divReport" name="divReport">
<input type="button" name="cmdPRINT" id="cmdPRINT" onclick="printReport()" value="打印">
<input type="button" onclick="window.close();" value="关闭">
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
在上边的代码中,大家需要注意以下<object id="factory" style="DISPLAY: none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.a.com/smsx.cab#Version=6,3,434,26"></object>
这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的cab文件,然后找到扩展名是.inf的文件,然后打开之,就能看到了。
使用范围:该组件针对打印大篇幅的文档非常好,对于那些对打印定位要求不是非常严格的东西。但是如果用它来打印增值税专用发票或者打印支票就不可以了。因为增值税专用发票类的东西对定位的要求非常的严格,那么这些东西我们用什么组件来打印呢?方法在下边,让我们看一下方案二就知道了。
我们再来看一下方案二:
wsreport这个组件可以用来打印对定位要求非常严格的内容,例如增值税专用发票,既然定位准确,那么控制的时候肯定就有难度,不过没关系,这个组件附带详细的
- B/S程序中WEB打印的完美解决方案
- B/S架构 Web打印程序(Argox)
- IE 自带的打印组件,WebBrowser,简单的解决B/S项目的打印解决方案,分页打印,打印预览
- B/S(Web)实时通讯解决方案
- B/S(Web)实时通讯解决方案
- B/S中CSS控制打印范围以及打印预览
- C#(C/s,B/s)程序里使用web service
- B/S C/S 打印
- 基于Intranet的B/S解决方案
- B/S结构浏览器的全屏解决方案
- B/S操作客户端硬件的解决方案
- JavaWebB/S打印解决方案
- VC、IE、ASP环境下打印、预备的完美解决方案
- VC、IE、ASP环境下打印、预览的完美解决方案
- VC、IE、ASP环境下打印、预备的完美解决方案
- VC、IE、ASP环境下打印、预备的完美解决方案
- WEB应用程序中B/S与C/S架构的比较
- 打印系列一:(套打解决方案(支持B/S和C/S))
- u-boot移植心得
- Delphi2007中TPanel的一个问题!
- uboot移植到S3C44B0X开发板的经历
- U-Boot在44B0X开发板上的移植以及代码分析
- 给vc配置DirectShow的开发环境
- B/S程序中WEB打印的完美解决方案
- 一个两表关联的复杂查询语句
- 打印表格
- 工作还是考研,跳槽还是坚守..如何面对选择
- 复制一个文件夹到另一个文件夹
- 从一张表根据纪录的值code。取另一张表相对应Code 的FileName
- 20岁以后
- 有梦有未来itofly.com
- C#中实现类型对foreach的支持