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