Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Печать документа через Word [Delphi, Windows]


silversmith ©   (2006-09-18 10:39:00) 

Добрый день уважаемые коллеги.

Подскажите как решить следующую проблему:
Я печатаю из своего приложения доковский документ методом PrintOut
Как бы мне узнать, что документ уже распечатался и от него можно отцепиться
W:=CreateOleObject('Word.Application');
W.Documents.Open(FileName);
W.ActiveDocument.PrintOut;
Вот здесь бы я хотел подождать момента, когда он весь уйдет на печать и сделать;
W.Quit;
W:=Unasigned;

Delphi 7, MS Windows XP SP2, Word2000


Virgo_Style   (2006-09-19 14:09:00) [1]

BackgroundPrintingStatus ?


Машихин Алексей   (2006-09-19 13:14:00) [2]

Я сделал так :

try
 w:=createoleobject('Word.application');
 w.Documents.Open(s_out);
 w.Application.PrintOut(false);
                                ^^^
                                  вот это означает что надо печатать не в фоновом режиме!
 w.quit;
except
 w.quit;
end;


silversmith   (2006-09-18 11:02:00) [3]

Спасибо за ответ.
Жаль, но это не вариант. Печатается большое количество документов - в районе нескольких сотен в цикле и ждать у заказчика никаких сил не хватит если у меня к примеру средний документ уходит на печать 5-7 секунд.

Может можно как-то у винды спросить состояние принтера? Правда это уже оффтоп в Corba и COM.


umbra   (2006-09-18 10:56:00) [4]


> Вот здесь бы я хотел подождать момента, когда он весь уйдет
> на печать и сделать;

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо