Обход драйвера принтера с PowerShell - PullRequest
1 голос
/ 09 ноября 2019

С помощью скрипта PowerShell мы создаем файл, содержащий текст и команды PCL для создания красиво отформатированной страницы, мне нужно распечатать этот файл на локальном подключенном принтере. К сожалению, командлет PowerShell Out-Printer форматирует выходные данные и уничтожает команды PCL, поэтому Out-Printer непригоден для этой работы.

Отправка файла на принтер LPR работает должным образом,

$socket = new-object System.Net.Sockets.TcpClient($global:remoteHost, $global:port)
$stream = $socket.GetStream() 
$writer = new-object System.IO.StreamWriter($stream,[System.Text.Encoding]::GetEncoding(1252))
$writer.Write($str2write)
$writer.Flush() 
$writer.Close()
$stream.Close()

К сожалению, этот подход работает только с принтерами TCP, но не с локально подключенными принтерами.

Поэтому мне нужен код PowerShell для помещения этого файла непосредственно в очередь принтеров Windows, минуя драйвер принтера Windows.

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

1 Ответ

0 голосов
/ 09 ноября 2019

Чтобы ответить на мой собственный вопрос, я нашел этот немецкий пост:

https://newyear2006.wordpress.com/2016/10/17/direkte-kommunikation-mit-druckern-unter-windows-von-powershell-aus/

это решило мою проблему, работает отлично.

...