Делал такое на PowerShell
$folder = 'e:\Print' # Папка.
$filter = '*.pdf' # расширение.
$PrintFile = {
$folder = 'e:\Print'
$printer = 'TOSHIBA e-STUDIO18 Printer'
$driver = 'TOSHIBA e-STUDIO18 Printer'
$port = 'USB001'
$acrobat = "${env:ProgramFiles(x86)}\Adobe\Reader 10.0\Reader\AcroRd32.exe"
$sumatra = "${env:ProgramFiles}\SumatraPDF\SumatraPDF.exe"
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "[$timeStamp] Printing '$name' on $printer\$port" -fore green
#Start-Process -FilePath $acrobat -Wait -ArgumentList "/n /t $folder\$name `"$printer`" `"$driver`" `"$port`""
Start-Process -FilePath $sumatra -Wait -ArgumentList "-silent -exit-on-print -print-to `"$printer`" `"$folder\$name`" "
Out-File -FilePath "$folder\outlog.txt" -Append -InputObject "[$timeStamp] Печать '$name' на '$printer\$port'"
remove-item -path "$folder\$name" -force}
# Удаляем подписки если есть
#Unregister-Event PrintCreatedFile
# Обьект отслеживания событий
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
# Регистрируем слушателя событий:
Register-ObjectEvent $fsw Created -SourceIdentifier PrintCreatedFile -Action $PrintFile
Write-Host "Started monitor '$folder'" -fore white
while ($true) {
Start-Sleep 30
}