通过Powershell打印ZPL(Zebra编程语言)文件

时间:2016-10-04 15:21:07

标签: powershell printing zpl

我编写了一个Powershell脚本,询问问题,获取用户的输入,将这些变量插入在ZPL中创建的标签中,然后通过Out-Printer打印出来。除了打印的标签有不正确的间距或缺少数据外,一切似乎都能正常工作。

最初我让脚本创建一个.txt文件,该文件以ZPL格式保存标签。检查标签所有数据都是正确的。当我使用相同的打印机从记事本打印.txt文件时(Driver设置为Generic / Plain文本)。标签是完美的。

我也尝试将打印方法切换到WMI变体。它会执行相同的格式问题和缺少数据,但现在位于不同的位置。

似乎Powershell在打印之前格式化数据。

以下是我目前的代码,其中包含一些因隐私问题而受到审查的数据。

$i = 0
$global:counter = $i + 1
$AllPrinters = gwmi win32_printer -computername $env:computername
$DefaultPrinterString = $AllPrinters | where {$_.Default -eq $true}
$DefaultPrinter = [regex]::match($DefaultPrinterString, '\"([^\"]+)\"').Groups[1].Value

Write-Host "========== Print Company Labels =========="
Write-Host "Question will be on the left, type in answer and hit ENTER"

$location = Read-Host "Which location? (LOC1 or LOC2)"
$pro = Read-Host "What is the Pro#?"
$quote = Read-Host "What is the quote number?"
$pallet = Read-Host "How many pallets are there?"
$printer = Read-Host "What printer do you want?"

While ($global:counter -le $pallet)
{

$printcode = "^XA^MCY^XZ^XA^SZ2^MMT^MTT~JSN^LT0^MD0^MNY^PR5^PON^PMN^CI0^LRN
^FT300,1300^A0B,350,160^FDPRO: $pro^FS
^FT480,1300^A0B,175,150^FD$location^FS
^FT480,1300^A0B,175,150^FD$location^FS
^FT480,900^A0B,175,100^FDQuote: $quote^FS
^FT800,1300^A0B,350,225^FDPallet $global:counter of $pallet^FS
^PQ01~*QUANT,04~,0,~*COPIES,04~,N^MCY^XZ"

(New-Object -ComObject WScript.Network).SetDefaultPrinter($printer)
$printcode | Out-Printer
Start-Sleep 1
(New-Object -ComObject WScript.Network).SetDefaultPrinter($DefaultPrinter)

$global:counter++
}

非常感谢任何帮助。

提前致谢

0 个答案:

没有答案