-
Добрый день уважаемые коллеги.
Подскажите как решить следующую проблему: Я печатаю из своего приложения доковский документ методом PrintOut Как бы мне узнать, что документ уже распечатался и от него можно отцепиться W:=CreateOleObject('Word.Application'); W.Documents.Open(FileName); W.ActiveDocument.PrintOut; Вот здесь бы я хотел подождать момента, когда он весь уйдет на печать и сделать; W.Quit; W:=Unasigned;
Delphi 7, MS Windows XP SP2, Word2000
-
> Вот здесь бы я хотел подождать момента, когда он весь уйдет > на печать и сделать;
в ворде такого способа нет, судя по всему. Надо просто сделать паузу, длительность которой подобрать эмпирически.
-
Спасибо за ответ. Жаль, но это не вариант. Печатается большое количество документов - в районе нескольких сотен в цикле и ждать у заказчика никаких сил не хватит если у меня к примеру средний документ уходит на печать 5-7 секунд.
Может можно как-то у винды спросить состояние принтера? Правда это уже оффтоп в Corba и COM.
-
Я сделал так :
try w:=createoleobject('Word.application'); w.Documents.Open(s_out); w.Application.PrintOut(false); ^^^ вот это означает что надо печатать не в фоновом режиме! w.quit; except w.quit; end;
-
BackgroundPrintingStatus ?
|