2013-12-10 70 views
0

我正在開發一個Java應用程序,用於出售體育場門票。如何在沒有瀏覽器的情況下在客戶端打印?

問題是需要爲客戶端打印機實現打印票據,但應用程序正試圖在服務器上找到打印機。

無法接受票證顯示在瀏覽器中。

必要時可以通過按下按鈕自動完成。

如何解決這個問題?請幫助,誰知道如何實施它。

對於檢測打印機,我使用PrinterJob job = PrinterJob.getPrinterJob();但是這些搜索打印機在部署應用程序的服務器上,而不是在客戶機上。

+0

告訴我們一些代碼人 –

+1

這不是一個Web應用程序嗎?這是桌面嗎?看看[Jasper Reports](http://community.jaspersoft.com/project/jasperreports-library) - 你可以生成和導出PDF文件,客戶端可以打印 –

+0

請添加一些代碼,將有助於弄清楚你的問題。 –

回答

1

是的,這是可能的。如果您的目標是使用printerjob和java graphics libary在客戶端打印機上打印,那麼您需要調用servlet-applet通信。
從您的應用程序中分離打印代碼/模塊jar並通過applet將其稱爲客戶端。 Applet將下載你的jar並打印在客戶端。

其他方式,使用html/jsp在網頁中生成票證,使用javascript調用windows.print。當用戶點擊打印時,它將在客戶端打印。

0

你基本上不能在瀏覽器上做到這一點,但是你可以讓瀏覽器打印一個你從javascript創建的頁面。究竟如何實現這取決於瀏覽器。

因此,在本質,你必須輸出HTML文件,其中包括JavaScript來指示瀏覽器打印的內容(可能使用的JavaScript window.print())

+0

我無法使用window.print()。只是我有打印機斑馬和空的地方特殊格式的票。我必須發送給打印機對象和形狀,根據它們應該打印。即如果需要打印3張票據,則發送3個對象,打印機必須打印3頁。 – AlexSmith

+0

這確實是唯一的方法。在瀏覽器中運行代碼不能直接在USB端口上找到斑馬紋打印機並寫入它 - 代碼是針對這種類型的訪問進行沙盒處理的。 – Elemental

0

我明白了......我會嘗試開發客戶端應用程序並將其安裝到客戶機。我將把這些應用程序與JMS幫助聯繫起來。即,網絡應用程序發送tickets_id到機器和我的客戶端應用程序打印此票。

相關問題