Печать на клиентском принтере из веб-приложения
-
03-07-2019 - |
Вопрос
Если у меня есть принтер, подключенный непосредственно к ПК (киоск с принтером), как бы я мог создать возможность для веб-страницы (.net web app) печатать jpg на принтере киосков без вмешательства пользователя, кроме нажатия кнопки на странице?
Решение
если бы вы создали приложение, в котором размещался элемент управления веб-браузером (вместо того, чтобы использовать веб-браузер напрямую), вы могли бы управлять процессом печати гораздо более непосредственно.
(предполагается, что возможно использование Windows + IE)
вот несколько примеров статей, которые могли бы помочь:
Настройка элемента управления WebBrowser
Использование элемента управления веб-браузером в ваших приложениях на C #
и постоянно меняющиеся документы MSDN для класса WebBrowser, у которого есть метод Print.
Из примечаний к способу печати:"Вы можете использовать этот метод для реализации кнопки печати, аналогичной той, что есть в Internet Explorer.Этот метод печатает текущий документ, не требуя дополнительного ввода данных пользователем. "
Другие советы
Этот вопрос задавался уже несколько раз, и результатом всегда было то, что вы не могу сделайте это с помощью обычных веб-технологий (HTML + Javascript).Лучшее, что вы можете сделать, это открыть диалоговое окно печати, и это по замыслу.Что вы можете сделать, поскольку вы управляете киосками, так это создать какое-нибудь расширение для браузера (например, flash-объект, размещенный на .Net элемент управления, java-апплет и т.д.) И сделать это доступным для вашей страницы, чтобы оно обрабатывало часть печати за вас.
Я решаю эти проблемы двумя разными способами:
- Использование ActiveX
- Создание протокола, подобного myprint://PRINT_DATA
Другие комментарии касаются сценария, в котором вы хотите выполнить печать на компьютере с веб-браузером.
Однако, если вы хотите выполнить печать на принтере, подключенном к веб-серверу (т.Е. на компьютере, на котором запущено веб-приложение), вы можете использовать обычную печать на C # со следующим поворотом:http://support.microsoft.com/kb/184291/
В моем контексте мой киоск запускает как веб-сервер, так и веб-браузер, так что это решило мою проблему.