webreport

博客园 首页 新随笔 联系 订阅 管理
  38 Posts :: 0 Stories :: 226 Comments :: 35 Trackbacks

常常有人msn问:

  • 用javascript脚本可以直接执行一个exe 文件吗?
  • 不用控件可以不出打印对话框直接打印吗?
  • 不使用控件可以自定义纸张吗?

我的答案都是,不可以!

  • 试想,如果js脚本可以执行EXE文件,那当你打开一个页面的时候,在window_onload()事件中就执行一个EXE文件,将您C盘上的数据删除,这个可以吗?
  • 如果不用控件可以不出打印对话框直接就打印,那当你浏览某个页面的时候,就自动发出打印命令,默默的让你的打印机打印出很多广告信息,这个你能接受吗?
  • 如果不用控件,在你还没有授权的情况下,就给你的打印机自定义出一排自定义纸张信息,是不是觉得有点失控的感觉。

所以我觉得在你未授权的情况下,是肯定不能做超出权限范围的打印工作的,比如不出打印对话框就直接打印这种操作等等。

要能灵活的控制web打印,采用控件是必须的,而且控件最好是轻量级的,否则下载量太大也很影响效果。有些用户会考虑用java得applet来实现,但是applet是不需要授权的,也无法设置这些打印参数的,只能发送打印命令,按照默认的打印情况来处理,还是不能满足很多最终端的用户的需要。

采用轻量级控件来处理web打印的优势是显而易见的,所以我的打印处理方案如下:

控件就处理打印参数的设置,比如设置页头页脚,选择纸张,自定义纸张,直接打印这些比较关键的参数。采用VC的ATL技术,控件能控制到只有75k,这样根本不影响打开页面的速度。

  • 控制打印格式采用下面方式处理
    先看一个api结构图


    从上到下,对上图中的几个主要模块的说明:
  • 1、打印设计器:是B/S的,不需要单独安装,可以直接供应给最终用户使用。
  • 2、数据集:是个xml格式的一张二维表,可以xml文件;xml格式的字符串;也可以是xml格式的数据流。实现用户系统和打印工具的接口。
  • 3、Printer对象:是这个打印工具提供的一个驱动对象,用户系统通过这个对象调用这个打印工具。
  • 4、Engine:打印工具实现打印的引擎。
  • 5、打印COM组件:实现打印参数设置的小插件(类似scriptx的那个小插件)。有数字签名,需要认证后才能使用。

 

采用这样一个方案来处理打印格式预置,套打等等是不是行之有效呢?
上图的解决方案
产品试用版本下载地址:http://www.fcsoft.com.cn/webprint4.rar

posted on 2007-06-04 16:05 web报表 阅读(1168) 评论(3)  编辑 收藏

Feedback

#1楼  2007-06-04 16:09 clefoo [未注册用户]
正在找
沙发先
  回复  引用    

#2楼  2007-07-10 09:31 阿牛      
看一下网马,是如何执行一个程序的.

http://www.cnblogs.com/evlon/archive/2007/07/08/810443.html
  回复  引用  查看    

#3楼  2008-01-11 10:41 pro [未注册用户]
这个方案分析,我觉得到是可行,
就是不知道你实现起来怎么样,
用户使用起来怎么样,
毕竟没有一个实例来分析,都是纸上谈兵,
就像,WEB打印,这简单的话题一样,实现起来多么的困难
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-02-21 11:07 编辑过


相关链接: