2012-11-14 53 views
0

有人问我是否可以开发一个JS解决方案,通过客户端访问网络打印机。所以,假设我有一个Web服务,它可以被某些客户使用,并且它提供了向用户定义的网络打印机打印报告(或类似的东西)的功能(用户告诉要打印哪个域和打印的主机)...JavaScript:将文件发送到已定义的网络打印机

这有可能以任何方式?最好的解决方案是,如果它可以通过类似于Ajax请求的方式完成;)

+0

我don'r理解。大多数浏览器允许用户右键单击,并从下拉菜单中选择“打印”。那时用户可以选择特定的打印机,包括网络打印机,或者可以打印成PDF文件。无法以当前格式打印的页面可能/应该包含一个链接,该链接将用户转到同一页面的另一个版本,而没有任何问题的视觉元素(如不必要的花哨背景)。为什么现有的能力不足?为什么还需要额外的东西? – Paul

+0

它不够充分,因为它可能是一个收银员模块,它通过web服务运行,并应直接打印到收银员旁边的收据打印机中......收银员没有时间,也没有神经可以点击任何额外的按钮仅打印简单的收据 - 而应直接打印。但是,这一切应该通过网上(互联网,内联网无)Web服务来实现;) – herom

+0

调用window.print()我觉得最让你可以很容易做到。这节省了右击的步骤。印刷仍需要确认。如果打印机改为与不在现场的应用程序服务器通话,则需要确保该链接的安全。另一方面,销售预先配置的收据打印机或在您的网络和互联网之间的定制VPN盒可以创建锁定到您的产品,也可以标记它们。当然,有些客户会认识并避免锁定。 – Paul

回答

1

这是可能的,但可能不是您想要的方式。您最好的选择是使用服务器端脚本打印到打印机。问题是,现代网络浏览器有很多安全功能,不允许这样的事情。

我能想到的唯一方法就是使用打印机:
1)接受HTTP或FTP上传的打印作业。
2)是在一些DNS域名作为网站等浏览器的防跨站脚本保护不会阻止你。

虽然如此,用某种服务器端解决方案,或者编写一个程序或自定义插件在客户端上运行会更好。

+0

我明白了你的观点,我同意这一点,除非它需要除web服务之外没有其他任何东西。什么“额外”安装在客户机上...哦 - 和web服务不是放在内部网(不一样的DNS)之内,但在“云” ...... – herom

+0

在这种情况下完全web服务,我想您唯一的选择是仅支持支持http/ftp的打印机,或者您可能会使用某种第三方打印服务,如AirPrint(Apple)或任何Google创建的打印服务来与之竞争。 –

相关问题