如何在jquery / javascript中跳过浏览器默认打印预览​​并将内容直接打印到打印机?

时间:2014-12-24 07:44:17

标签: javascript jquery

因为我们知道在C#windows表单应用程序中我们可以打印内容直接打印而无需任何预览。我想在用户点击按钮时在jquery / javascript中打印内容,浏览器没有显示任何打印预览和打印到打印机的内容

3 个答案:

答案 0 :(得分:5)

经过数小时的研究,我找到了以下解决方案来解决我的问题。

也许您可以使用Google Clound Print设置您的打印机,然后使用云打印API静默地向他们提交作业。看起来您可以在提交作业时指定打印机ID。您可能需要使用类似html2canvas的内容来栅格化网页。

在此处找到Select a printer and silently print

在chrome(v18 +)中,我们有--kiosk --kiosk-printing开关。可以自动打印到默认打印机而无需打印确认。

您可以在此视频http://www.youtube.com/watch?v=D6UHjuvI7IE

中看到它

在此处找到Google Chrome Extension: Print the page silently

答案 1 :(得分:4)

浏览器不会允许这种情况发生。您可以使用以下插件提供精美的预览。

https://github.com/etimbo/jquery-print-preview-plugin

演示:http://etimbo.github.io/jquery-print-preview-plugin/example/index.html

答案 2 :(得分:0)

在IE中使用VBScript脚本是可行的,只需将其放入页面即可。

<script type="text/VBScript" language="VBScript">
        Sub Print()
               OLECMDID_PRINT = 6
               OLECMDEXECOPT_DONTPROMPTUSER = 2
               OLECMDEXECOPT_PROMPTUSER = 1
               call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
        End Sub
        document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>

<script type="text/javascript">
   setTimeout(function() { 
        window.print();
        self.close();
   }, 1000);
</script>