zoukankan      html  css  js  c++  java
  • 原创处理web打印套打的方案分析

    常常有人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

  • 相关阅读:
    【iPhone开发】说说Xcode4中xib绑定的原理转
    转 IOS下的图片
    免证书调试Iphone程序(转)
    牛B的Python模块(转)
    6 个手机开发方面很有用的应用
    留个脚印!
    Android初学者入门PDF版
    IOS下的MVC
    android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6
    10 款 Windows 下最佳的免费 PHP 编辑器
  • 原文地址:https://www.cnblogs.com/webreport/p/770819.html
Copyright © 2011-2022 走看看