基于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,请保留文章的完整。 |
>>> 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))
...
...
不幸的是,android和ios缺乏打印机驱动程序的概念,因此没有原生和广泛支持的方式从移动设备打印。 但是,还有几个其他选择需要考虑: 依靠用户为他们喜欢的打印机安装应用程序(这可能不是一个令人满意的解决方案,因为这些应用程序经常与移动Web浏览器集成不良) 针对支持电子邮件打印的(相当常见的)打印机,即允许用户输入其打印机的电子邮件地址,然后向该地址发送包含您要打印的任何内容的电子邮件(除了明文之外的任何其他内容)需要发送带有html内容的多部分电子邮件) Unfortunately andr
...
如何添加Java的反射本质以打印方法体? 恐怕相当困难。 首先,原始源代码很可能对正在运行的程序不可用。 通常,开发人员不在二进制JAR中包含源代码。 (即使他们这样做,也不能保证他们会成为“真正的”来源。) 通常可以通过将类的FQN转换为字节码文件并使用classes classloader将文件作为资源流加载来获取类的字节码。 但不能保证你以这种方式获得的字节码将与加载的字节码相同。 (有些类加载器出于各种原因与字节码混淆。) 假设你可以得到真正的字节码,最后一步是将它们显示为raw,或者反汇
...
如何使用Adobe inDesign Data Merge 。 和视频在这里 很容易使用aswel。 How about Adobe inDesign Data Merge. And video here Pretty easy to use aswel.
你为什么不用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'):
...
MeadCo ScriptX可能有助于确保页面适合1:1,但这只有在减小打印边距的尺寸时才会增加可打印区域。 您可以使用MeadCo ScriptX设置边距。 是的,您可以控制标题和页脚(包括将它们设置为空字符串)。 打印内容的字体控制完全由css决定,不需要MeadCo ScriptX。 使用ScriptX,您还可以控制用于页眉和页脚的字体。 考虑ScriptX的一种有用方法是自动化IE。 如果您可以使用IE打印设置以1:1的比例可靠地打印出打印输出,那么您可以使用(比如)javascript重
...
这应该很简单: <button onclick="window.print()">Print</button>
This should be as simple as: <button onclick="window.print()">Print</button>
只需将方法返回的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
...
出于安全原因,您的JavaScript无法访问打印设置页面。 For security reasons your JavaScript would not have have access to the print setup page.
我无法对原始问题发表评论,所以......我会再试一次。 我很开心地注意到,“主持人”只是简单地用一个简单的“不回答问题”来删除我的答案,我即将被禁止回答任何问题。 我希望主持人评论我的答案,而不是简单地删除它,因为我真的想帮助那些表示“任何帮助将被赞赏”的OP。 原始帖子未指定ScriptX的版本。 已知问题是旧版本(7.0之前的版本)在打印某些ActiveX控件时可能会出现问题。 确保使用v7.4或更高版本。 I am unable to comment on the original que
...