Печать веб-страницы без отображения диалогового окна печати - PullRequest
0 голосов
/ 24 января 2019

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

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Я успешно делаю это по этим строкам. Но проблема в том, что это печатает только на принтер по умолчанию. Я знаю, как установить принтер по умолчанию, но я ищу решение, в котором я передаю имя принтера, и он печатает веб-страницу без предварительной установки принтера по умолчанию.

ie.Navigate(URL, ref missing, ref missing, ref missing, ref missing);
while (!documentLoaded && ie.QueryStatusWB(OLECMDID.OLECMDID_PRINT) != OLECMDF.OLECMDF_ENABLED)
    ie.ExecWB(OLECMDID.OLECMDID_PRINT, OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref missing, ref missing);
0 голосов
/ 15 февраля 2019

Звучит хитрее, чем есть (скорее всего). Насколько я понимаю, вам понадобится какой-то движок, чтобы перевести все стили веб-страницы, макет и рисунки. и только после этого рендеринг, какой бы ни был конечный результат. Помня об этом, сразу всплывает одна вещь: автоматизация браузера и, в частности, селен могут сделать эту работу. Так как вы спросили, не показывая диалоговое окно принтера, вы можете запустить в режиме без головы Тем не менее, я думаю, что вам лучше всего загружать страницу предварительного просмотра через js.ExecuteScript("setTimeout(window.print, 5);"); ( ссылка) а затем осторожно найдите кнопку печати с ожидающими обработчиками.

PS. Я не верю, что это самое чистое и простое решение, но сейчас я могу думать только об этом.

...