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

如何在jquery/javascript中跳过浏览器默认打印预览并将内容直接打印到打印机?,javascript,jquery,Javascript,Jquery,正如我们所知,在C#windows窗体应用程序中,我们可以直接打印内容,而无需任何预览。当用户单击按钮时,我想用jquery/javascript打印内容,浏览器不显示任何打印预览,并且打印到打印机上的内容浏览器将不允许这种情况发生。您可以使用下面的插件提供漂亮的预览 演示:经过数小时的研究,我找到了以下解决问题的方法 也许你可以用Google Clound Print设置打印机,然后使用云打印API以静默方式向他们提交作业。似乎可以在提交作业时指定打印机id。您可能需要使用html2canv

正如我们所知,在C#windows窗体应用程序中,我们可以直接打印内容,而无需任何预览。当用户单击按钮时,我想用jquery/javascript打印内容,浏览器不显示任何打印预览,并且打印到打印机上的内容浏览器将不允许这种情况发生。您可以使用下面的插件提供漂亮的预览


演示:

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

也许你可以用Google Clound Print设置打印机,然后使用云打印API以静默方式向他们提交作业。似乎可以在提交作业时指定打印机id。您可能需要使用html2canvas之类的工具来栅格化网页

在这里找到

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

你可以从这个视频中看到


在这里找到

它可以在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>

子打印()
OLECMDID_打印=6
OLECMDEXECOPT_dontprompuser=2
OLECMDEXECOPT_PROMPTUSER=1
调用WB.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_dontprompuser,1)
端接头
document.write“”
setTimeout(函数(){
window.print();
self.close();
}, 1000);

为什么要这样做?而不为用户提供节省纸张/墨水的可能性?我想打印代币,客户不喜欢一次又一次的打印预览。浏览器不允许您这样做,但您可以强制下载,就像在c#sharp中一样。您可以直接向打印机发送参数,但在web中,浏览器将发送参数。@MujassirNasir您找到解决方案了吗?我想同样的直接打印,在我的情况下,我有一个像设置->扫描票->打印pdf的亭?有什么想法和建议吗?有没有办法通过创建一些chrome扩展来做到这一点?我不这么认为。最终,您必须打印页面,浏览器将在哪个阶段显示预览屏幕。啊,这是您的解决方案。听起来很有希望,你还知道视频标题吗,因为你的链接已经失效了?视频现在不可用