Задача: настроить печать из Windows XP x86 на компьютер с Windows 7 x64.
Решение: скрипт автоматической печати PDF из опеределённой расшаренной сетевой папки.
Расшарим по сети на Windows 7 папку Z:\print\
В эту папку будут поступать файлы PDF с виртуального принтера от Windows XP и отправлятся на печать реального принтера на Windows 7. После распечатки файл удаляется автоматом и скрипт ждёт появление нового файла в сетевой папке print.
На Windows XP я поставил вируальный PDF принтер PDFCreator. Именно с этим принтером нет проблем с печатью. BullZip не прокатило - не со всех программ печатал.
Код файла print.vbs помещается в Автозагрузку компьютера с принтером на Windows 7 x64:
- Спойлер:
'On Error Resume Next
'Автоматическая печать PDF-файлов, появляющихся в определенной папке
'Глобальные переменные
Set gFSO = CreateObject("Scripting.FileSystemObject")
Set gShell = CreateObject("WScript.Shell")
'Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
gWatchFolder = "z:\print\"
'Основной цикл
While true
Set lFolder = gFSO.GetFolder(gWatchFolder)
Set lFiles = lFolder.Files
For Each lFile In lFiles
PrintFile(gWatchFolder & lFile.Name)
Next
WScript.Sleep(1)
WEnd
'Функция печати конкретного pdf-файла
Sub PrintFile(pFileName)
'Ждем некоторе время (пока файл до конца запишется)
WScript.Sleep(3)
'msgbox(pFileName)
'Мы (больше) не боимся пробелов :Р
s = """C:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe"" /p """ & pFileName & """"
'msgbox (s)
Call gShell.Run(s,0,true)
gFSO.DeleteFile(pFileName)
If gFSO.FileExists(pFileName) Then
'Мало ли чего может случиться, лучше пусть у Иван Иваныча перестанет печатать, чем один файл много раз уйдет на принтер
'msgbox("Не удалось удалить файл " & pFileName & "! Позвоните Василию по т. XXX-XXX)
WScript.Quit
'Else
'Пока не реализовано
'ToLog("Файл " & lFileName & " удален.")
End If
End sub
Так же было мной добавлено в Автозагрузку Windows 7 открытие сетевой папки, иначе при загрузке компа сетевой диск не подключается, пока его не откроешь в проводнике.
- Спойлер:
- @echo off
start "" "Z:\print\"
exit
Конструкция работает в тихом режиме с версией Foxit Reader 6.0.2. Если поставить последню версию Foxit Reader, то тихого режима не будет и файл не удалится, а сам Foxit не закроется автоматически.