2015-03-02 5 views
0

Я пытаюсь найти доступные принтеры локальной системы с приложением Vaadin.Vaadin получить локальные принтеры

Я попытался

PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null); 

Но это дает мне принтеров на сервере, на котором Vaadin WAR находится.

Заранее спасибо

+1

Большая часть кода Java в приложении vaadin - это именно то, что это: код на стороне сервера. если у вас нет средств для перечисления принтеров через javascript (вызывают этот код с сервера, чтобы получить список из браузера/клиента), теперь вы можете сделать эту работу на концах «java» vaadin. – cfrick

+0

Спасибо за ваши комментарии. Я попытался найти какие-либо примеры, но я не могу этого сделать. Вы можете мне помочь ? –

ответ

0

Почему вы хотите, список клиентских принтеров? Я думаю, что браузеры не используют эту информацию (так же, как и многие другие данные, связанные с клиентом) по соображениям безопасности: это может помочь идентифицировать клиента или предоставить личную информацию.

Если вы хотите, чтобы напечатать что-то на стороне клиента, вы можете подготовить пользовательский интерфейс и вызвать это со стороны сервера:

JavaScript.getCurrent().execute("window.print()"); 

Откроется диалоговое окно печати на стороне клиента. Пользователь просто должен нажать «распечатать» (или отменить). Я думаю, что это касается того, что касается автоматической печати.

+0

Большое спасибо за комментарии. Я хочу печатать напрямую в выбранном пользователем пользовательском принтере, который локально установлен на своем компьютере, и не спрашивать его каждый раз, какой принтер он хочет использовать. –

+0

Ну, это невозможно в стандартных браузерах. Вы можете разработать программу для установки на клиенте (например, службу Windows), которая может разговаривать с вашим серверным приложением. Затем эта программа может передавать доступные принтеры на ваш сервер, и ваш сервер может проинструктировать эту программу для печати. – geert3

+0

Спасибо за ваши комментарии –

Смежные вопросы