在以前的几篇文章里,介绍的都是如何利用IE本身提供的控件在进行打印设置,这种方法有它的局限:不能够以编程的方式进行页面方向的设置,而这有时很重要。下面本道就给大家介绍一下,如何使用一个叫ScriptX的控件来进行复杂一点的打印设置。
ScriptX是一个叫MeadCo的国外公司的产品,它分为基础版(免费)和高级版(收费),基础版可以对 页眉,页脚,页边距,纸张方向进行设置。高级版有一些额外的功能,由于是收费的,需要付费以后才能用到你系统中,这里就不介绍了。
ScriptX的最新版是6.4,可以在以下地址下载。ScriptX 6.4打印控件下载
下载以后是一个smsx.cab文件,把它放到你的应用目录下,例如/study/smsx.cab。
下面通过一个例子来讲解它的功能和使用。
- <html>
- <object id=factory style="display:none"
- classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
- codebase="http://ajava.org/study/smsx.cab#Version=6,4,438,06">
- </object>
-
- <script>
- function printWindow() {
- factory.printing.header = "使用ScriptX进行打印设置";
- factory.printing.footer = "AJava.org出品";
- factory.printing.portrait = false;//设为true就是横向
- factory.printing.leftMargin = 1.0;
- factory.printing.topMargin = 1.0;
- factory.printing.rightMargin = 1.0;
- factory.printing.bottomMargin = 1.0;
- }
- printWindow();
- </script>
-
- <input type="button" value="打印本页" onclick="factory.printing.Print(true)">
- <input type="button" value="打印目标框架页" onclick="factory.printing.Print(true, idFrame)">
- <input type="button" value="打印设置..." onclick="factory.printing.PageSetup()">
- <input type="button" value="打印预览..." onclick="factory.printing.Preview()">
-
- <iframe name="idFrame" width="100%" height="60%" src="http://www.baidu.com">
- </html>
factory.printing.Print(true),这里设置成true或false,我没有发现有什么不同的效果。它的原意是直接打印。
factory.printing.Print(true, idFrame),第一个参数同上,第二个参数是目标框架的name。
factory.printing.PageSetup()是调出页面设置窗口。
factory.printing.Preview()是调出页面预览窗口。
其他的代码很简单,不需要解释什么。
ScriptX有一点不好的地方,在IE里装了这个控件以后,打印预览时的界面是英文的了。如果你的用户对此会反感,建议你不要用ScriptX。可是用以前介绍的几种方法,都不能以编程方式进行纸张方向的设置,那该怎么办呢?请看《[AJava原创]WEB打印系列教程之六--使用jatoolsPrinter控件进行WEB打印设置》
转载请注明:转自http://ajava.org,请保留文章的完整。