2

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

非常感谢。

4

2 回答 2

1

如果打印机在同一网络中可用,您可以使用带有套接字 API的网络通信来访问它。

于 2013-10-08T00:03:06.550 回答
0

如果您同意在打印前要求用户确认,那么您可以使用 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 之类的东西(如将画布转换为 pdf中所述)将您想要打印的内容转换为您的 pinter 可以理解的内容。

于 2013-10-08T18:16:31.117 回答