RusMikle
@RusMikle
Программист

Программый выбор принтера для печати из компонента WebBrowser

Доброе время суток!

нужно программно отправить на печать документ находящийся в WebBrowser, причем на принтер не являющийся принтером по умолчанию в системе.
Как программно вызвать диалог выбора принтера знаю, нужно програмно выбирать.
Как изменить программно принтер по умолчанию и потом вернуть на место тоже знаю (этот вариант сейчас и работает) но хотелось бы не меняя принтер по умолчанию.
Понятно что как отправлять на печать тоже знаю.

Идеально было бы как то связать WebBroser и System.Drawing.Printing.PrintDocument в котором выбор принтера не вызывает вопросов.

Подскажите, может уже кто то бодался с такой проблемой.

Спасибо.
  • Вопрос задан
  • 4694 просмотра
Пригласить эксперта
Ответы на вопрос 4
AlexanderPro
@AlexanderPro
Software Developer
Здравствуйте,

Если я правильно понял вам нужно из страницы, загруженной в контрол WebBrowser, послать команду в C# код, чтобы настроить принтер и произвести печать. Если так, то у вас вопрос в том, как вызывать этот код из страницы. Смотрите здесь. Принтер задается через свойство System.Drawing.Printing.PrintDocument.PrinterSettings.PrinterName, без диалогов.

Или уточните, что конкретно вы хотите.
Ответ написан
Комментировать
RusMikle
@RusMikle Автор вопроса
Программист
Идея использовать JavaScript в документе для отправки на печать из WebControl на нужный принтер работая при этом в шарпе попахивает большим костылём, я уж молчу что в каждый документ прийдётся этот скрипт запихивать.
Возможно я не достаточно хорошо описал задачу:
Основная идея, находясь в шарпе грузить в WebBrowser контрол html страничку и отправлять её на нужный принтер находясь при этом все время в шарпе. Через JavaScript конечно можно, но уж больно как то все извратом попахивает. Да и как Вы представляете себе настройку принтера через System.Drawing.Printing.PrintDocument.PrinterSettings.PrinterName если PrintDocument и документ находящийся в WebBrowser между собой никак не связаны?
Ответ написан
Комментировать
AlexanderPro
@AlexanderPro
Software Developer
Похоже я поторопился советовать PrintDocument. Тоже нашел способ, но как и у вас через смену принтера по умолчанию. Не подскажите этот вариант работает насколько стабильно или просто есть желание сделать более правильно?
Ответ написан
Комментировать
RusMikle
@RusMikle Автор вопроса
Программист
В первую очередь это просто некрасиво. Во вторую, смена принтера по умолчанию происходит с запаздыванием (особенно при первом вызове). Приходится делать цикл с опросом и ждать когда смена произойдёт. Опять же, гипотетически если кто то хочет печатать параллельно и ждёт другой принтер по умолчанию итп. Проект серьёзный и костыли писать не хочется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы