Печать на сетевой принтер без драйверов

24582ada31966d962275200d68c4e16c
;Автоматическая печать PDF-файлов, появляющихся в определенной папке

;Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
$gWatchFolder = "o:\pdfPrint\"

;Основной цикл
While true
   Local $search = FileFindFirstFile($gWatchFolder & "*.pdf")
   If @error Or ($search = -1) Then ContinueLoop
   Local $file = FileFindNextFile($search) 
   PrintFile($gWatchFolder & $file)	  
   Sleep(1000)
WEnd

;Функция печати конкретного pdf-файла
Func PrintFile($pFileName)
   
   $pNewFileName = StringReplace( $pFileName, ".pdf", "_.pdf")
   
   ;Ищем Фоксит ридер
   If FileExists("c:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe") Then
	  $s = """c:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe"" /p """ & $pNewFileName & """"
   ElseIf FileExists("c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe") Then
	  $s = """c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe"" /p """ & $pNewFileName & """"
   Else
	  MsgBox(4096, "Не установлена программа Foxit Reader!", "Foxit Reader.exe does NOT exists")
	  Exit
   EndIf

   ;Попытаемся переимновать файл, чтобы определить, дозаписан ли он до конца.
   If FileMove($pFileName, $pNewFileName) Then
	  
	  ;запускаем печать pdf через Фоксит Ридер и ждём, когда процесс завершится
	  Local $PID = Run($s)
	  ProcessWaitClose($PID)
	  
	  ;удаляем файл, чтобы он повторно не печатался
	  If Not FileDelete($pNewFileName) Then
		 msgbox(1,"","Не удалось удалить файл " & $pNewFileName & " ! Зовите системного администратора!")
		 Exit
	  EndIf
	  
   EndIf
   
EndFunc


© Habrahabr.ru