Web打印中使用ScriptX做页面设置

 使Web打印时页面的设置,比如页眉、页脚、页边距等,可以使用ScriptX中的免费功能实现。相关说明文档:http://www.meadroid.com/scriptx/docs/printdoc.htm


使用方法:
点击http://www.meadroid.com/scriptx/最下面“Developers can download the current version of the ScriptX archive here.”中的“here”, 填个邮箱就会把下载链接发到邮箱里。下载安装后,到安装目录下找到redist文件夹,把smsx.cab跟要打印的页面放在一个目录中(其实哪个都可 以,只是这样你就不用考虑引用的路径了)。另一个文件:smsx.exe是打印安装文件,这个现在装不装都行,因为后面页面运行会自动检测并提示你安装 的。

在页面中引用:
  <object id="factory" style="display: none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="smsx.cab#Version=6,3,436,14">
  </object>

在打印的时候调用js:
     //打印参数设置:
     document.all.factory.printing.header ="";
     document.all.factory.printing.footer ="";
     document.all.factory.printing.leftMargin =10;
     document.all.factory.printing.rightMargin =10;
     document.all.factory.printing.topMargin =10;
     document.all.factory.printing.bottomMargin =10;
     document.all.factory.printing.portrait = true     //方向,true为纵向,false为横向

     //document.all.factory.printing.Preview();         //打印预览,
     //document.all.factory.printing.PageSetup()       //打印设置
     document.all.factory.printing.Print(true)       //打印, true打印前确认,false直接打印
           
      
其中参数你也可以想办法存到cookies里面,每次打印前去读,这样用户只需要更改一次,就可以实现批量设置了。

单位的问题:因为这里没有指定单位,因此使用你系统默认的单位,所以为了统一,因为这个是免费版的,所以不提供指定单位的功能,那就只好改自己的电脑了,修改单位的方法 http://blog.tao123.com/article.asp?id=1142 其中提到:
客户端计算机的操作系统为:windows xp、win2003 时:
进入控制面板,打开“区域和语言选项”,在“区域选项”页中,点击“自定义”按钮,在弹出的“自定义区域选项”对话框中的“数字”项中,将其中的“度量衡系统”设置为“公制”

客户端计算机的操作系统为:windows 2000 时:
进入控制面板,打开“区域选项”,选择“数字”项,将其中的“度量衡系统”设置为“公制”

这样改过之后,页边距的单位就是毫米了。

 

其中参数你也可以想办法存到cookies里面,每次打印前去读,这样用户只需要更改一次,就可以实现批量设置了。

(一知半解,旨在学习,如有不当请指出,谢谢)

posted @ 2009-04-24 16:26  lightwalker  阅读(1908)  评论(3编辑  收藏  举报