【问题标题】:Is it possible to access printer installed in network in Google Chrome Packaged App?是否可以在 Google Chrome Packaged App 中访问安装在网络中的打印机?
【发布时间】:2013-10-09 02:16:31
【问题描述】:

我正在构建一个 Google Chrome 打包应用程序。我需要通过“封闭”网络(未连接为 USB)访问可用的打印机。显然 Chrome 云打印 API 不是我的选择,因为我说的是“封闭”网络,因此无法访问互联网(除了我需要非常快速地打印,所以即使我有互联网,我也无法通过云去等待几秒钟即可打印。)。我已经完成了我的研究,到目前为止,这在 Google Chrome Packaged App 中似乎是不可能的。如果我忽略了某些事情,或者是否有解决方法,请告诉我。

非常感谢。

【问题讨论】:

标签: printing google-chrome-app


【解决方案1】:

如果打印机在同一网络中可用,您可以使用Network CommunicationsSockets API 访问它。

【讨论】:

    【解决方案2】:

    如果您同意在打印前要求用户确认,那么您可以使用 window.print(),它适用于 Chrome 应用程序,但有几个限制:1) 存在一个可能导致 OS X 崩溃的错误 ( http://crbug.com/297179),虽然这个错误在 Chrome 的 Canary 和 Dev 版本中已修复,但修复程序需要几周时间才能进入 Beta 和 Stable 版本; 2) 在 Window 和 Linux/Chrome OS 上,打印预览面板的大小受限于正在打印的窗口的大小,因此您需要确保窗口足够大,以便用户可以访问所有打印预览 UI .

    因为 window.print() 到目前为止还没有在 Chrome 应用程序中大量使用,您可能会遇到其他人没有看到的问题。如果有,请通过http://crbug.com/new 举报。

    如果您需要在没有用户确认的情况下进行打印,您的程序可能必须使用套接字 API 直接与您的打印机或打印服务器通信(如 xmarcos 在对该问题的另一个回复中所述)。您可能需要使用 pdf.js 之类的东西(如 Converting canvas to pdf 中所述)将您想要打印的内容转换为您的 pinter 可以理解的内容。

    【讨论】:

    • 另外,对于使用 window.print() 但无需用户干预的打印选项,请关注Chromium issue 31395
    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 2015-09-11
    • 2010-11-14
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    相关资源
    最近更新 更多