[WPF] Параметры печати
От: VetalPPC  
Дата: 01.12.09 13:11
Оценка:
Вопрос простой, но ответа на него я в не нашел.
Как в WPF программным способом задать принтер для печати (чтобы не выбирать его вручную через PrintDialog)?
В книгах написано, что в PrinterDialog-е есть PringTicket, который содержит все настройки печати, чтобы не показывать окно. Но этот объект почему-то не дает инфу о выбранном принтере. Пытался сохранять PrintTicket между сессиями в Settings-ах, но почему-то не выходит.
Re: [WPF] Параметры печати
От: MxKazan Португалия  
Дата: 02.12.09 07:44
Оценка:
Здравствуйте, VetalPPC, Вы писали:

VPP>Вопрос простой, но ответа на него я в не нашел.

VPP>Как в WPF программным способом задать принтер для печати (чтобы не выбирать его вручную через PrintDialog)?
VPP>В книгах написано, что в PrinterDialog-е есть PringTicket, который содержит все настройки печати, чтобы не показывать окно. Но этот объект почему-то не дает инфу о выбранном принтере. Пытался сохранять PrintTicket между сессиями в Settings-ах, но почему-то не выходит.
Посмотри класс LocalPrintServer и его свойство DefaultPrintQueue.
Re: [WPF] Параметры печати
От: aloch Россия  
Дата: 02.12.09 09:58
Оценка:
Здравствуйте, VetalPPC, Вы писали:

Конкретный принтер (вернее, очередь печати) задается через класс PrintQueue. В PrintTicket сохраняется только информация о настройках печати — выбранный формат и ориентация бумаги, нужно ли использовать дуплекс (если он есть у принтера), настройки качества печати и т.п — т.е. те настройки, которые задаются в окне "настроки печати".

И PrintQueue и PrintTicket можно создать самостоятельно (про LocalPrintServer тебе уже написали), но вот чего нельзя сделать без PrintDialog — имея PrintQueue нельзя вызвать на экран диалог "настроки печати" данного принтера и получить PrintTicket (или я не нашел, как это можно сделать). Поэтому, как бы без PrintDialog в WPF-печати делать нечего.

Вообще от WPF-печати осталось двоякое впечатление — с одной стороны намного удобнее, чем через GDI/GDI+, с другой стороны в некоторых местах просто караул, например, почему для того же PrintDialog нельзя задать окно-владелец?


 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.