PDA

Показать полную графическую версию : [решено] Автоматическая печать из папки


Dreamer_UFA
28-03-2019, 13:43
Доброго времени суток.

Прошу помощи элегантно реализовать печать документов из папки.
Скрипт который проверяет содержимое папки (input), при наличии файлов (pdf, doc, xls) - отправляет на печать и удаляет.

Прошу восполнить пробел в памяти. Раньше использовал, сейчас не могу вспомнить.
Гугл мне не забанили, решения есть. Может у кого то готовый скрипт есть и поделитесь ? :)

Iska
28-03-2019, 14:38
Были здесь. На WSH и AutoIt. На PoSH не переделывали. Для PDF была желательна сторонняя утилита (для Adobe Reader'а), хотя, возможно, на PowerShell'е можно будет обойтись и без неё. Искать (и переделывать) пока некогда.

Dreamer_UFA
01-04-2019, 11:55
В общем для себя решение нашел. Может кому то будет полезно.

Создаем папку на любом диске (в моем случае d:\doc)
Устанавливаем PDF Creator или подобный
Запускаем скрипт и ВУАЛЯ

Все файл .pdf что попадают в папку - идут на печать и удаляются.

Моя задача была печать ценников с web консоли МойСклад. Все работает.
Ценник сохраняется в папку и автоматически уходит на принтер этикеток.


Option Explicit : Dim objWord, objDoc, wssh, objFS, objShell, objPath, objFolder, objItem

Set wssh = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objPath = objFS.GetFolder("d:\doc\") 'Папка, из которой производится печать

Do
PrintDelInFolder objPath
WScript.Sleep 1000
Loop

Sub PrintDelInFolder(objFolder)
For Each objItem In objFolder.Files
If StrComp(objFS.GetExtensionName(objItem.Name), "pdf", vbTextCompare) = 0 Then
With wssh
WScript.Sleep 1000
On Error Resume Next
dim f
f = Cstr(objItem.Path+".pdf")
objFS.MoveFile objItem.Path, f
If err.number=0 then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute f, "vbHide", "", "print", 0
set objShell = nothing
err.Clear
Do
WScript.Sleep 5000
objFS.DeleteFile f ,true
Loop While objFS.FileExists(f)
err.Clear
End If
On Error Goto 0
End With
End If
Next
End Sub
WScript.Quit 0

Всем спасибо.

Busla
02-04-2019, 11:16
изобилие WScript.Sleep и "элегантно" - понятия несовместимые




© OSzone.net 2001-2012