Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用JavaScript选择打印机吗?_Javascript_Internet Explorer_Activex - Fatal编程技术网

我可以使用JavaScript选择打印机吗?

我可以使用JavaScript选择打印机吗?,javascript,internet-explorer,activex,Javascript,Internet Explorer,Activex,可能重复: 我们的一个内部网应用程序需要打印到非默认打印机。当然,人们经常忘记选择正确的打印机 我知道你不能通过JavaScript正常完成这项工作,但考虑到浏览器是IE9,我可以将webapp添加到受信任区域(并随意修改安全设置),有没有办法编写JavaScript自动选择正确的打印机?可能使用一些ActiveX或其他特定于IE的东西。不,Javascript对象模型包括一个window.print()方法,该方法可以激活Web浏览器的标准打印对话框,但这只是功能扩展的范围。Javascri

可能重复:

我们的一个内部网应用程序需要打印到非默认打印机。当然,人们经常忘记选择正确的打印机


我知道你不能通过JavaScript正常完成这项工作,但考虑到浏览器是IE9,我可以将webapp添加到受信任区域(并随意修改安全设置),有没有办法编写JavaScript自动选择正确的打印机?可能使用一些ActiveX或其他特定于IE的东西。

不,Javascript对象模型包括一个window.print()方法,该方法可以激活Web浏览器的标准打印对话框,但这只是功能扩展的范围。Javascript代码无法检查连接到计算机的打印机、查找打印机属性或任意配置其设置,这既不合适也不安全


我建议在打印前添加一个pop,提醒用户选择合适的打印机。

如果您的浏览器基于IE,您可以从meadroid使用此activeX:

我过去使用过它,它允许控制打印机属性

以下是mmeadroid文档中的一个示例:

<script>
function printWindow() {
  factory.printing.SetMarginMeasure(2); // set inches
  factory.printing.header = "This is MeadCo";
  factory.printing.footer = "Printing by ScriptX";
  factory.printing.portrait = false;
  factory.printing.leftMargin = 1.0;
  factory.printing.topMargin = 1.0;
  factory.printing.rightMargin = 1.0;
  factory.printing.bottomMargin = 1.0;
  factory.printing.copies = 1;
  factory.printing.printBackground = true;
  factory.printing.Print(false);
  factory.printing.WaitForSpoolingComplete();
  // navigate or close browser here //
}
</script>

函数printWindow(){
factory.printing.SetMarginMeasure(2);//设置英寸
factory.printing.header=“这是MeadCo”;
factory.printing.footer=“通过ScriptX打印”;
factory.printing.portrait=假;
factory.printing.leftMargin=1.0;
factory.printing.topMargin=1.0;
factory.printing.rightMargin=1.0;
factory.printing.bottomMargin=1.0;
factory.printing.copies=1;
factory.printing.printBackground=true;
工厂。印刷。印刷(假);
factory.printing.waitForSpoolgComplete();
//在此处导航或关闭浏览器//
}

如果你有这样的控件,而且它是内部的,那么也许ActiveX控件可以工作。显然我不清楚,我知道这“一般”是不可能的,但我希望如果放松一些安全策略(毕竟这是一个intranet应用程序),可能会有一个特定于IE的解决方案。如果你足够清楚,答案仍然是一样的,没有办法。事实上,contam的解决方案是有效的,即使它对我来说太贵了。这似乎是可行的,但只适用于付费版本。是:-。。。它不是免费的,但对于商业项目来说,这是一个很好的投资。如果您切换到firefox,这里是一个替代方案,firefox的一个插件类似于meadco scriptx,但免费:@contam工厂未定义:s