Показать сообщение отдельно
Старый 11.01.2006, 16:27   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Печать самих файлов PDF
AXAPTA 2.5 SP3

Есть набор файлов PDF. Мне необходимо организовать печать этих файлов в определенном порядке. На первый взгляд, показалось все просто:

PHP код:
#WinAPI
while (...)
{
        
fileName = (имя очередного файла PDF);
        
WinApi::shellExecute(fileName,
                             
'',
                             
fileFolder,                             // Директория, где лежит файл
                             #ShellExePrint);

В принципе, это работает. Но! Acrobat просто не успевает корректно обрабатывать все поступающие файлы. Не успел он обработать и послать на печать один файл PDF, как ему уже подсовывают другой.

В результате, очередь на печать формируется практически в произвольном порядке.

"По хорошему", надо бы каждый раз дожидаться окончания печати одного файла и только после этого посылать на печать другой. Но Acrobat просто не закрывает свое окно по окончании печати (Acrobat 5.0 - разные "подверсии" - 5.0.1, 5.0.5). Т.е. даже зная номер процесса я не могу отследить факт окончания этого процесса, поскольку он так и не завершился.

Пока вышел из положения поставив секундную задержку

sleep(1000);

Т.е. я предполагаю, что 1 секунды должно хватить Acrobat для полной обработки одного PDF-файла. В общем, вроде бы хватает. Но ведь понятно, что дело случая. Если вдруг на загрузку файла понадобиться более 1 секунды, то опять порядок следования будет нарушен.

Есть ли какой-нибудь корректный способ отследить факт завершения печати PDF-файла? Может быть есть другие способы решения поставленной задачи?

AXAPTA 2.5 SP3
За это сообщение автора поблагодарили: DSPIC (5).