基于Web的打印方案比较分析(五)使用ScriptX进行复杂的WEB打印设置

2019-03-28 12:15|来源: 道长A

在以前的几篇文章里,介绍的都是如何利用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,请保留文章的完整。

相关问答

更多

Python中是否有任何智能打印方法?(Are there any smart print methods in Python?)

>>> a = [2,2,2,1,1,1,1,1,1,1] >>> from itertools import groupby >>> ["{}*{}".format(k, sum(1 for x in g)) for k, g in groupby(a)] ['2*3', '1*7'] 或者为了代码重用的利益: >>> def rle(seq): ... return ((k, sum(1 for x in g)) for k, g in groupby(seq)) ... ...

从移动设备打印4英寸打印机上的网页(Print Web page on 4 inch printer from mobile)

不幸的是,android和ios缺乏打印机驱动程序的概念,因此没有原生和广泛支持的方式从移动设备打印。 但是,还有几个其他选择需要考虑: 依靠用户为他们喜欢的打印机安装应用程序(这可能不是一个令人满意的解决方案,因为这些应用程序经常与移动Web浏览器集成不良) 针对支持电子邮件打印的(相当常见的)打印机,即允许用户输入其打印机的电子邮件地址,然后向该地址发送包含您要打印的任何内容的电子邮件(除了明文之外的任何其他内容)需要发送带有html内容的多部分电子邮件) Unfortunately andr ...

如何反思地打印方法体?(How do I print the method body reflectively?)

如何添加Java的反射本质以打印方法体? 恐怕相当困难。 首先,原始源代码很可能对正在运行的程序不可用。 通常,开发人员不在二进制JAR中包含源代码。 (即使他们这样做,也不能保证他们会成为“真正的”来源。) 通常可以通过将类的FQN转换为字节码文件并使用classes classloader将文件作为资源流加载来获取类的字节码。 但不能保证你以这种方式获得的字节码将与加载的字节码相同。 (有些类加载器出于各种原因与字节码混淆。) 假设你可以得到真正的字节码,最后一步是将它们显示为raw,或者反汇 ...

生成打印和Web的目录(Generate a catalog for print and web)

如何使用Adobe inDesign Data Merge 。 和视频在这里 很容易使用aswel。 How about Adobe inDesign Data Merge. And video here Pretty easy to use aswel.

打印网页上的所有输入(Print all input from web page)

你为什么不用urllib2 + BeautifulSoup : import urllib2 from bs4 import BeautifulSoup url = "http://sito.com/SitoContact.htm" # change to whatever your url is page = urllib2.urlopen(url).read() soup = BeautifulSoup(page) for i in soup.find_all('input'): ...

IE浏览器中的MeadCo ScriptX打印(MeadCo ScriptX printing in IE)

MeadCo ScriptX可能有助于确保页面适合1:1,但这只有在减小打印边距的尺寸时才会增加可打印区域。 您可以使用MeadCo ScriptX设置边距。 是的,您可以控制标题和页脚(包括将它们设置为空字符串)。 打印内容的字体控制完全由css决定,不需要MeadCo ScriptX。 使用ScriptX,您还可以控制用于页眉和页脚的字体。 考虑ScriptX的一种有用方法是自动化IE。 如果您可以使用IE打印设置以1:1的比例可靠地打印出打印输出,那么您可以使用(比如)javascript重 ...

如何使用JavaScript打印方法?(How can I have a Print Method, Using JavaScript)

这应该很简单: <button onclick="window.print()">Print</button> This should be as simple as: <button onclick="window.print()">Print</button>

打印方法到文本字段中(Printing method into textfield)

只需将方法返回的int转换为一个string然后将其打印到文本字段。 运用 dice_field.setText(Integer.toString(new Dice().throwDice())); 要么 dice_field.setText(String.valueOf(new Dice().throwDice())); Just convert the int returned from the method to a string then print it to the text fi ...

网页打印按钮和设置(web page print button and settings)

出于安全原因,您的JavaScript无法访问打印设置页面。 For security reasons your JavaScript would not have have access to the print setup page.

使用MeadCo scriptx打印活动的x对象(Printing active x objects with MeadCo scriptx)

我无法对原始问题发表评论,所以......我会再试一次。 我很开心地注意到,“主持人”只是简单地用一个简单的“不回答问题”来删除我的答案,我即将被禁止回答任何问题。 我希望主持人评论我的答案,而不是简单地删除它,因为我真的想帮助那些表示“任何帮助将被赞赏”的OP。 原始帖子未指定ScriptX的版本。 已知问题是旧版本(7.0之前的版本)在打印某些ActiveX控件时可能会出现问题。 确保使用v7.4或更高版本。 I am unable to comment on the original que ...