Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выбор принтера для печати в WebBrowser / 4 сообщений из 4, страница 1 из 1
20.09.2013, 16:24
    #38402979
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор принтера для печати в WebBrowser
Доброе время суток!

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

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

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

Спасибо.
...
Рейтинг: 0 / 0
23.09.2013, 20:41
    #38405224
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор принтера для печати в WebBrowser
Mikhail Tchervonenko,

а решения походу нет. На хабре тоже никто ничего дельного не посоветовал.
...
Рейтинг: 0 / 0
23.09.2013, 22:09
    #38405309
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор принтера для печати в WebBrowser
Mikhail Tchervonenko,

В данном примере меняю только ориентацию страницы, для меня важно в принципе воспользоваться классом PrintDocument
т.к. остальные настройки он позволяет изменить без проблем.

пробую сделать по аналогии с этим примером

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        private StreamReader streamToPrint;

        public void PrintDirect(string PrinterName)
        {
            // тут oWebBrowser это объект WebBrowser на форме.
            streamToPrint = new StreamReader(oWebBrowser.DocumentStream); // не уверен что тут правильно

            PrintDocument pd = new PrintDocument();
            pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); // Подцепляем вывод из потока
            pd.PrinterSettings.PrinterName = PrinterName; // переопределяем принтер
            // Set the page orientation to landscape.
            pd.DefaultPageSettings.Landscape = true;  // меняем ориентацию страницы
            pd.Print();
            streamToPrint.Close();
        }
        private void pd_PrintPage(object sender, PrintPageEventArgs ev)
        {
           // А вот тут проблемма
           // не знаю как выплюнуть из потока содержимое страницы
           // по идее что то вроде streamToPrint.ReadToEnd() а потом ev.Graphics.Draw .........
           // но не получается, Подскажите как выплюнуть этот поток не как исходный
           // HTML  текст страницы а так как отобразил бы его WebBrowser
        }



Кстати, streamToPrint.ReadToEnd() возвращает строку "<html></html>/0" а не то что находится реально в WebBrowser в этот момент, тут тоже походу где то накосячил
...
Рейтинг: 0 / 0
26.09.2013, 12:15
    #38408227
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор принтера для печати в WebBrowser
проблема так и не решена :(
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выбор принтера для печати в WebBrowser / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]