Печать на указанный c принтер из Adobe Reader из сценария vb, запущенного на сервере - PullRequest
1 голос
/ 10 июля 2020

Я запускаю сценарий vb на нашем сервере, который вызывается из клиента.

Мой сценарий должен распечатать этикетку pdf на специальном c принтере.

Я работаю с обычным напечатайте на лазерном принтере, если я скопирую файл на принтер следующим образом:

'Create the filesystem object

Set FSO = CreateObject("Scripting.FileSystemObject")

'Get a reference to the folder you want to search

set FLD = FSO.GetFolder(strFolder)

'loop through the folder and get the file names

For Each Fil In FLD.Files

If UCase(FSO.GetExtensionName(Fil.Name)) = "PDF" Then

FSO.CopyFile Fil.path, "\\servername\printername"

End If

Next

, но это не работает с этикетками. Когда я пробую, принтер этикеток переходит в режим ошибки. : - (

Он работает, если я сделаю это:

Set objShell = CreateObject( "WScript.Shell" )

objShell.run chr(34) & "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" & chr(34) &
" /p /h " & chr(34) & "filepath\filename" & chr(34)

, но затем он будет печатать на принтере по умолчанию.

Это тоже нормально, но по какой-то причине я могу Не устанавливаю принтер по умолчанию из сценария, вызываемого клиентом. Только если я захожу на сервер и запускаю сценарий вручную.

Вот что я делаю, чтобы установить принтер по умолчанию:

Set objNet = CreateObject("Wscript.Network")

objnet.AddWindowsPrinterConnection "\\servername\printername"

objnet.SetDefaultPrinter "\\servername\printername"

Поэтому я попробовал это:

Set objShell = CreateObject( "WScript.Shell" )

objShell.run chr(34) & "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" & chr(34) &
" /t " & chr(34) & "filepath\filename" & chr(34) & " " & chr(34) & "\\servername\printername" & chr(34) &
" " & chr(34) & "drivername" & chr(34) & " " & chr(34) & "portname" & chr(34)

, но когда я запускаю этот Adobe, открывается и показывает файл, и больше ничего не происходит.: - (

Кто-нибудь знает, как я могу либо заставить SetDefultPrinter работать или .... \ ArcroRd32.exe / t "filename" "printername" "Drivername" "portname"?

...