Web应用程序中的"静音"打印
我正在开发一个需要静默打印的Web应用程序-无需用户参与。做到这一点的最佳方法是什么?它不喜欢完全使用Javascript,Flash和/或者AIR可以完成。我所见过的最接近的是Java小程序。
我能理解为什么对于任何网站而言,这样做都是一个坏主意。此特定实例用于内部应用程序,如果用户需要将URL添加到受信任的站点列表,安装插件等,则完全可以接受。
解决方案
回答
我必须说老实话,我在这里有点想。 ?
可能值得研究可以赋予每个区域哪些权限?
继Google之后,我想我们一定会遇到挑战,到目前为止,我所看到的大多数文章都涉及到与服务器连接的打印机的打印。
如果是内部打印机,是否可以将打印从服务器路由到部门/用户打印机或者其他设备?
回答
我写了一个python tsr,它每隔一段时间轮询一次服务器(它将轮询频率从服务器上拉下来),然后将其打印到标签打印机上。比较好。
一旦用python编写,我就在上面使用py2exe,然后使用inno setup编译器,然后放在Intranet上并让用户安装它。
效果不是很好,但是效果很好。用户将在早晨启动它,该程序将在晚上从服务器收到终止开关。
回答
我们可以尝试以下两个代码示例:
1:
<script> function Print() { alert ("THUD.. another tree bites the dust!") if (document.layers) { window.print(); } else if (document.all) { WebBrowser1.ExecWB(6, 1); //use 6, 1 to prompt the print dialog or 6, 6 to omit it //some websites also indicate that 6,2 should be used to omit the box WebBrowser1.outerHTML = ""; } } </script> <object ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object>
2:
if (navigator.appName == "Microsoft Internet Explorer") { var PrintCommand = '<object ID="PrintCommandObject" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>'; document.body.insertAdjacentHTML('beforeEnd', PrintCommand); PrintCommandObject.ExecWB(6, -1); PrintCommandObject.outerHTML = ""; } else { window.print(); }
我们可能需要将要测试的站点/页面添加到本地Intranet区域。
回答
如果它只是一个内部应用程序,则可以避免从浏览器进行打印,而直接将打印输出从服务器发送到距离用户最近的打印机。
回答
在不显示"打印首选项"对话框的情况下,需要执行以下操作才能立即启用Firefox。
- 在Firefox的位置栏中键入about:config,然后按Enter。
- 右键单击页面上的任意位置,然后选择"新建">"布尔值"
- 输入首选项名称作为print.always_print_silent,然后单击确定。
我在某个地方发现了它,对我有帮助
回答
我可以使用一个简单的JSP页面和Java PDF Renderer库(https://pdf-renderer.dev.java.net)全天候工作。这是可行的,因为Java是使用OS而不是浏览器进行打印的。据说"静默打印"被认为是浏览器漏洞/漏洞,并且在IE 6之后进行了修补,非常好运,它可以通过Javascript或者Active X正常工作。