Исторически сложилось так, что в отделе стоит единственный принтер Canon LBP-1120. И все было прекрасно до тех пор, пока не установили на рабочие машины Windows 7 x64. К сожалению, драйверов для LBP-1120 под 64-битные Windows нет в природе.
В интернете есть вариант решения такого вопроса. Предлагают печатать на виртуальный PostScript-принтер, который будет перенаправлять задания на реальный. В моём случае это решение поросло огромным количеством ошибок в работе системы печати. Пришлось искать другой способ.
Схема такая:
Выбрал бесплатный PDF-принтер — dopdf. Устанавливается без каких-либо сложностей. При печати открывается маленькое окно с выбором имени pdf-файла. Ставим галочку «Всегда использовать эту папку» и снимаем «Открыть PDF».

Для печати pdf-файлов скачиваем и устанавливаем на принт-серверной стороне бесплатный PDF-ридер Foxit Reader. С его помощью возможна печать командой
Ну и наконец пишем и компилируем autoit скрипт:
Осталось положить скомпилированный exe-файл в папочку Автозагрузка и наслаждаться печатью.
В интернете есть вариант решения такого вопроса. Предлагают печатать на виртуальный PostScript-принтер, который будет перенаправлять задания на реальный. В моём случае это решение поросло огромным количеством ошибок в работе системы печати. Пришлось искать другой способ.
Схема такая:
- Печатать на pdf-принтер, который сохранит документ в сетевую папку.
- На стороне сервера печати запустить скрипт, который будет все pdf-документы из сетевой папки отправлять на принтер.
Выбрал бесплатный PDF-принтер — dopdf. Устанавливается без каких-либо сложностей. При печати открывается маленькое окно с выбором имени pdf-файла. Ставим галочку «Всегда использовать эту папку» и снимаем «Открыть PDF».

Для печати pdf-файлов скачиваем и устанавливаем на принт-серверной стороне бесплатный PDF-ридер Foxit Reader. С его помощью возможна печать командой
"c:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe" /p <имя pdf-файла>
Ну и наконец пишем и компилируем autoit скрипт:
Код тут
;Автоматическая печать 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
Осталось положить скомпилированный exe-файл в папочку Автозагрузка и наслаждаться печатью.
