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里面,每次打印前去读,这样用户只需要更改一次,就可以实现批量设置了。
(一知半解,旨在学习,如有不当请指出,谢谢)
HelloWorld