使用powershell绕过打印机驱动程序

5f0d552i  于 2023-04-06  发布在  Shell
关注(0)|答案(2)|浏览(202)

使用PowerShell脚本,我们创建了一个包含文本和PCL命令的文件,以生成格式良好的页面,我需要在本地连接的打印机上打印此文件。不幸的是,PowerShell cmdlet 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打印机驱动程序。
我很感激你的帮助。

laximzn5

laximzn51#

看看微软的rawprn.exe(你可以下载可执行文件)。为了在Zebra标签打印机上打印ZPL文件,我用途:

Start-Process "C:\rawprint\RawPrint.exe" -NoNewWindow -Wait -ArgumentList "`"Zebra GK420d raw`" `"file.zpl`""
4ngedf3f

4ngedf3f2#

为了回答我自己的问题,我找到了这个德国帖子:
https://newyear2006.wordpress.com/2016/10/17/direkte-kommunikation-mit-druckern-unter-windows-von-powershell-aus/
这个解决了我的问题,效果很好。

相关问题