2012-11-14 71 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創建的打印服務來與之競爭。 –

相關問題