2016-01-21 3 views
0

Я работаю над веб-проектом, в котором мне нужно иметь возможность напрямую общаться с принтером моего клиента. Клиент использует мое приложение через браузер и хочет, чтобы у вас была возможность щелкнуть по кнопке, чтобы печатать билеты без перерывов, что означает, что в браузере не появляется диалоговое окно принтера. Это требование устраняет многие традиционные способы отправки информации на принтер клиента, и поскольку я хочу, чтобы решение, которое будет работать в любом браузере, не будет работать с решениями, использующими VBSCRIPT или другие зависящие от браузера решения.Отправка команд на удаленный принтер

Моим первоначальным решением этой проблемы было создание Java-апплета, который динамически загружался на страницу при нажатии кнопки «Печать». Тем не менее, браузеры, такие как Chrome, и вскоре Firefox устраняет поддержку NPAPI, что ломает мой Java-плагин.

Текущее решение, над которым я работаю, - создать службу на C#, которую пользователь устанавливает локально на своей машине, а затем, когда клиент нажимает кнопку «Печать», мой сервер напрямую связывается с этой службой. Таким образом, я могу обойти ограничения браузера, а служба, запущенная на машине клиента, будет иметь полный доступ для связи с целевым принтером. Недостатком этого подхода является то, что теперь пользователю необходимо установить дополнительный бит программного обеспечения на своем компьютере, и для каждой машины, на которую они хотят получить доступ к моему приложению и распечатать, на этой машине должны быть настроены правильные настройки переадресации портов и брандмауэра , Я могу сделать эту работу для моего текущего клиента, но с будущими клиентами это становится проблемой. Кроме того, мой новый подход в настоящее время поддерживает только машины Windows, и если будущие клиенты используют OS X или Linux, мне нужно будет перенести эту службу.

Неужели кто-нибудь сталкивался с этой проблемой раньше или есть какие-либо идеи о том, как связаться с принтером клиента, который не зависит от браузера?

ответ

0

Существует не возможное решение, которое поддерживает Chrome и не требует установки на устройство. вы не можете запускать произвольный код, который взаимодействует с ОС из Chrome. И единственным способом взаимодействия с этим другим кодом, помимо локального веб-сервера, будет Native Messaging в расширении, но это не соответствует требованиям кросс-браузера.

0

Вы не можете связаться напрямую из-за безопасности. Я также разрабатываю 1 приложение в C# для дистанционной печати. существует один способ, если у вашего клиента есть удаленный принтер, тогда вы можете сделать эту задачу, легко сделать небольшое приложение на сервере и интегрироваться со всем удаленным принтером, и вы можете выполнить команду принтера с сервера, а печать будет выполнена с клиентского принтера

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