Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];

Вниз

Автоматическое закрытие Word после печати.   Найти похожие ветки 

 
EternalWonderer   (2002-05-30 15:12) [0]

Задача: выдать документ на печать при помощи Word, после чего автоматически закрыть его.
Решение:
Procedure PrintClose(WordDoc: _Document);
Var EP: OleVariant;
Begin
EP := EmptyParam;
WordDoc.PrintOut(EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP);
WordDoc.Close(EP,EP,EP);
End;

Проблема: Всё работает замечательно, если Word не закрывается вместе с документом (т.е. если есть ещё открытые документы). В противном случае мы имеем малоприятное сообщение "Печать ещё не закончена. Закрытие Word приведёт ...". При помощи какого приёма можно заставить Word сначала допечатать документ, а потом уже закрыться?


 
AFROLOV   (2002-05-30 15:26) [1]

Const wdAlertsNone=0;
.....
.....
Procedure PrintClose(WordDoc: _Document);
Var EP: OleVariant;
Begin
EP := EmptyParam;
WordDoc.PrintOut(EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP);
WordDoc.DisplayAlerts:=wdAlertsNone;
WordDoc.Close(EP,EP,EP);
End;


 
EternalWonderer   (2002-05-30 15:37) [2]

>AFROLOV © (30.05.02 15:26)
Маленькая поправочка:
WordDoc. Application.DisplayAlerts := wdAlertsNone;
Спасибо, но НЕ помогло.


 
AFROLOV   (2002-05-30 15:44) [3]

Тогда есть предложение дождаться окончания печати и после этого закрывать Word. Или закрыть все документы и после этого закрывать Word.


 
EternalWonderer   (2002-05-30 16:01) [4]

ОК, можно попытаться дождаться. Только вот как "спросить" у Word, закончил он печать документа или ещё нет?

Может, возможен такой вариант: написать макрос на VB, "запихнуть" его в Word, и запускать после PrintOut вместо Close, чтобы он дожидался окончания печати и закрывал документ (и Word)?


 
AFROLOV   (2002-05-30 16:20) [5]

Цитата из справки по VBA:
BackgroundPrintingStatus Property

Returns the number of print jobs in the background printing queue. Read-only Long.

Ждем след образом:
While (WordDoc.Application.BackgroundPrintingStatus>0) do
begin
end;



 
EternalWonderer   (2002-05-30 16:40) [6]

Отлично! Требуемая функциональность получена. Осталось немного "подрехтовать" (например, вынести запрос в отдельный поток, добавить контроль открытия других документов на момент окончания печати и т.д.). БОЛЬШОЕ спасибо, Алексей..

А вообще, мне кажется предпочтительней вариант с макросом, - вот только возиться некогда ...


 
vecs   (2002-05-30 17:18) [7]

ето и многое другое может халявный ARWordReport
http://shortway.to/vsoft


 
EternalWonderer   (2002-05-30 17:19) [8]

Спасибо, посмотрю ...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
14-30987
Stan123
2002-05-04 22:52
2002.06.10
Где можно скачать русские mp3-Files?


14-30979
Kozhanov
2002-05-06 12:07
2002.06.10
Help-файлы


4-31034
chernoruk
2002-04-05 18:22
2002.06.10
Используя процедуру Send


1-30815
AlexPotemkin
2002-05-31 12:08
2002.06.10
About ListBox and Mouse


1-30915
DiHLoS
2002-05-29 18:49
2002.06.10
Перекодировка Win в Dos





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский