Двусторонняя печать (или просто выборочная)
От: xa0c Россия http://irchat.ru
Дата: 17.09.07 20:54
Оценка:
Господа!

Возникла такая проблемка... Пробую добавить печать к своему приложению.
Создал наследника от PrintDocument, в OnPrintPage всё что нужно и как нужно нарисовал, в предпросмотре выглядит замечательно.

Вопрос... Как мне напечатать этот, только что созданный документ на листе с двух сторон?.. Т.е с одной стороны листа четная страница, с другой нечетная?..

Как пример — в ворде есть галочка "Двусторонняя печать", но почему-то установка в коде параметру PrinterSettings.Duplex какого-либо значения вообще ни на что не влияет — печатаются все подряд страницы. Где-то нашел описание способа установки этого же режима через winapi — тоже не прокатило, решил, что он только на спец-принтерах работает. На тех, которые сами бумагу после печати обратно засасывают и на другой стороне печатают.

Мне же нужно, чтобы принтер отпечатал нечетные страницы, я бы достал бумагу, перевернул, вставил обратно и продолжил печать.


P.S. Извиняюсь за свой несколько обрывистый стиль изложения — никогда с принтерами не работал, да и вообще принтер себе домой недавно только купил...
... << RSDN@Home 1.2.0 alpha rev. 729>>
Re: Двусторонняя печать (или просто выборочная)
От: adontz Грузия http://adontz.wordpress.com/
Дата: 17.09.07 20:56
Оценка:
Здравствуйте, xa0c, Вы писали:

А просто взять и напечатать сперва нечётные, а потом чётные страницы?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Двусторонняя печать (или просто выборочная)
От: xa0c Россия http://irchat.ru
Дата: 17.09.07 22:06
Оценка:
Здравствуйте, adontz, Вы писали:

A>А просто взять и напечатать сперва нечётные, а потом чётные страницы?


Вообще-то это и было в вопросе. Я не нашел способа указывать страницы выборочно. Максимум — некий промежуток "с такой-то страницы по такую-то".

Или же вы предлагаете отрисовывать в OnPrintPage сначала нечетные, а затем четные, то есть, например, в документе из 10 страниц первые 5 будут 1,3,5,7,9, а следущие 2,4,6,8,10?..
... << RSDN@Home 1.2.0 alpha rev. 729>>
Re[3]: Двусторонняя печать (или просто выборочная)
От: adontz Грузия http://adontz.wordpress.com/
Дата: 17.09.07 22:08
Оценка:
Здравствуйте, xa0c, Вы писали:

X>Или же вы предлагаете отрисовывать в OnPrintPage сначала нечетные, а затем четные, то есть, например, в документе из 10 страниц первые 5 будут 1,3,5,7,9, а следущие 2,4,6,8,10?..


Да. Плюс по уму надо предоставить следующие варинты
1 3 5 7 9 2 4 6 8 10
2 4
6 8 10 1 3 5 7 9
пустая страница 1 3 5 7 9 2 4 6 8 10
пустая страница 2 4 6 8 10 1 3 5 7 9
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Двусторонняя печать (или просто выборочная)
От: Ромашка Украина  
Дата: 18.09.07 08:16
Оценка:
xa0c пишет:
> Или же вы предлагаете отрисовывать в OnPrintPage сначала нечетные, а
> затем четные, то есть, например, в документе из 10 страниц первые 5
> будут 1,3,5,7,9, а следущие 2,4,6,8,10?..

Неа. Не так. Вот так:
1,3,5,7,9
10,8,6,4,2

ЗЫ. .Duplex это относится к принтерам, которые могут печатать документы
с двух сторон. ИМХО, стоит проверить, умеет ли принтер так, а потом уже
печатать.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[4]: Двусторонняя печать (или просто выборочная)
От: xa0c Россия http://irchat.ru
Дата: 18.09.07 19:36
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Неа. Не так. Вот так:

Р>1,3,5,7,9
Р>10,8,6,4,2

Все эти последовательности зависят от того, как принтер засасывает бумагу и в каком порядке выплёвывает.
Для моего случая последовательность будет 1,3,5,7,9; 2,4,6,8,10

Впрочем, не в этом суть.
Данный способ выглядит как-то кустарно... У меня в предпросмотре страницы были в 2 столбца: слева нечетные, справа чётные. Таким образом было сразу видно что на одном листе с обоих сторон будет напечатано. Если переделать отрисовку, то вся эта красота собъётся.

Не спорю, можно поступить следующим образом: в предпросмотре отрисовать страницы как обычно, а перед отправлением на печать снова перерисовать в 1,3,..; 2,4,..

В общем, ИМХО. Это всё некрасиво.
... << RSDN@Home 1.2.0 alpha rev. 729>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.