Глюки с печатью. (EndDoc -> NewPage -> NewPage -> E

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Глюки с печатью. (EndDoc -> NewPage -> NewPage -> E

Сообщение iGrok » 14.02.2008 (Чт) 16:22

Есть примерно такой код:

Код: Выделить всё
...формирование первого документа...
Printer.EndDoc (1) - печатается первый док-т.

...формирование первой страницы второго док-та...

Printer.NewPage (2) - все ок.

...формирование второй страницы второго док-та...

Printer.NewPage (3) - печатается первая страница.

...формирование третьей страницы...

Printer.EndDoc (4) - печатаются вторая и третья страница.

Вопрос: кто знает, почему второй документ не дожидается второго EndDoc, а начинает печатать страницы "по готовности"?

З.Ы. Сделать так, чтобы остался только один EndDoc в самом конце - можно, но очень не хочется. Тем более теоретически все должно работать правильно.

З.З.Ы. Пробовал: вставлять после первого EndDoc всякие там DoEvents'ы, KillDoc'и(пальцем в небо), и пр. Не помогает.

З.З.З.Ы. Нюанс: формируются доки с текстом и графикой. Весьма объемные. Если печатать просто несколько символов вместо страницы док-та, все работает правильно. Отсюда шальная мысль о том, что драйверу принтера не хватает буфера ))

З.З.З.З.Ы. Принтеры сетевые. На виртуальном все печатается правильно независимо ни от чего. Локального нету - не попробовать.
label:
cli
jmp label

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.02.2008 (Вт) 14:23

Дык есть какие мысли?
label:
cli
jmp label

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.02.2008 (Вт) 14:31

См опции принтера своего.

Print directly to printer - тогда все будет ок.
или играйся со спулером, например, эта настройка:
-Start printing after last page is spooled

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.02.2008 (Вт) 16:31

Мда.. Спасибо, помогло.

И тем не менее, смущает следующий момент..
Если печатать просто несколько символов вместо страницы док-та, все работает правильно.
label:
cli
jmp label


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: The trick и гости: 23

    TopList  
cron