Всем доброго времени суток.
Подскажите как надежно отправить определенные файлы PDF из указанного каталога на печать с возможностью обработки ошибок, удалось/не удалось
Сделал простой автоматизацией через Adobe reader 11 и ShellExecute...
В принципе работает, но не надежно, ShellExecute не всегда открывает файл итд...
Подскажите как надежно отправить определенные файлы PDF из указанного каталога на печать с возможностью обработки ошибок, удалось/не удалось
Сделал простой автоматизацией через Adobe reader 11 и ShellExecute...
В принципе работает, но не надежно, ShellExecute не всегда открывает файл итд...
Код:
; Подключаем необходимые библиотеки
#include <Array.au3>
#include <File.au3>
AutoItSetOption('WinTitleMatchMode',-2)
$KatRep='d:\rep'
; Считываем файлы в массив согласно шаблону
$aFiles=_FileListToArray($KatRep,'Реестр - Д*')
For $i=1 To $aFiles[0]
$ReesrName=$aFiles[$i]
PDFtoDefaultPrinter($ReesrName) ; Печать Реестра
Next
; Печать PDF-файла на принтер по умолчанию
Func PDFtoDefaultPrinter($PDFName)
$PDFName=StringLower($PDFName) ; Переводим в нижний регистр
ShellExecute($PDFName,'',$KatRep) ; Открыть PDF-файл Adobe reader 11
WinWaitActive($PDFName) ; Дожидаемся активности окна
Sleep(300)
Send('^p') ; Вызываем меню печати CTRL+P
WinWaitActive('печать') ; Дожидаемся активности окна
ControlClick('Печать','','[CLASS:Button; INSTANCE:47]') ; жмем кнопку "Печать"
; Ждем закрытия окна, чтобы завершить функцию
WinWaitActive('выполнение') ; Дожидаемся активности окна
While 1
If Not WinExists ('выполнение') Then ExitLoop ; Проверяет, существует ли указанное окно.
WEnd
WinClose($PDFName)
MsgBox(0,'','Выполнено '&$PDFName,5)
EndFunc