【问题标题】:How to skip browser default print preview and print content directly to printer in jquery/javascript?如何在 jquery/javascript 中跳过浏览器默认打印预览​​并将内容直接打印到打印机?
【发布时间】:2014-12-24 07:44:16
【问题描述】:

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

【问题讨论】:

  • 为什么这样做——而不是为用户提供节省纸张/墨水的可能性?
  • 我想打印令牌,客户不喜欢一次又一次的打印预览。
  • 浏览器不允许你这样做,但你可以像点击这里下载在c#中强制下载可以直接向打印机发送参数,但是在网页中,浏览器会发送参数。
  • @MujassirNasir 你找到解决方案了吗?我想直接打印相同的内容,在我的情况下,我有一个类似 setup -> Scan ticket -> print pdf 的信息亭?有什么想法、建议吗?

标签: javascript jquery


【解决方案1】:

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

也许您可以使用 Google Cloud 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

【讨论】:

  • 啊,这是您的解决方案。听起来很有希望,因为您的链接已失效,您还知道视频标题吗?
  • 视频现在不可用
【解决方案2】:

浏览器不允许这种情况发生。您可以使用下面的插件来提供漂亮的预览。

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

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

【讨论】:

  • 有没有办法通过创建一些 chrome 扩展来做到这一点?
  • 我不这么认为。最终,您必须打印浏览器将在哪个阶段显示预览屏幕的页面。
【解决方案3】:

在 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>

【讨论】:

    【解决方案4】:

    这个非常适合我。如果您使用的是 Mozilla Firefox,请在搜索栏中键入 about:config 并按 Enter 键导航到配置文件。您将被定向到具有 Firefox 设置的页面并搜索 print.always_print_silent。要禁用打印预览,请将布尔值更改为 true 并启用更改为 true。

    它对我有用。在 chrome 中使用 --kiosk 打印。

    更多信息请访问https://support.aerocrs.com/hc/en-us/articles/360030321912-Firefox-browser-bypassing-the-print-dialog-box-

    【讨论】:

      【解决方案5】:

      其实可以通过以下插件,然后在打印的时候调用java脚本。

      1- QZ 托盘(https://qz.io

      2- JS 打印管理器 (https://www.neodynamic.com/articles/Print-HTML-from-Javascript-to-client-printer-without-print-dialog-silently/)

      【讨论】:

        猜你喜欢
        • 2014-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        • 2010-09-16
        • 1970-01-01
        相关资源
        最近更新 更多