#powershell #printing #zpl
#powershell #печать #zpl
Вопрос:
Я написал сценарий Powershell, который задает вопросы, принимает ввод пользователя, вставляет эти переменные в ярлык, созданный в ZPL, а затем распечатывает его с помощью Out-Printer
. Кажется, все работает нормально, за исключением того, что печатаемая метка имеет неправильный интервал или недостающие данные.
Первоначально я попросил скрипт создать файл .txt, содержащий метку в формате ZPL. Проверка метки все данные были правильными. Когда я печатал текстовый файл .txt из Блокнота, используя тот же принтер (драйвер был настроен на общий / обычный текст). Ярлык был бы идеальным.
Я также попытался переключить метод печати на вариант 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
}
Буду признателен за любую помощь.
Заранее спасибо
Комментарии:
1. Можете ли вы показать нам выходные данные в текстовом файле? Вы искали какие-либо скрытые символы в текстовом файле?
2. Я загрузил 2 картинки в свои альбомы Google: <br> goo.gl/photos/QQoKuX6Fm2uzMWBB9 <br> Добавьте «https:» спереди, SE не разрешает короткие ссылки, и это все, что предоставляет Google <br> Изображение слева напечатано из Блокнота с использованием файла, выводимого изсценарий powershell и тот же принтер. На рисунке справа показан прямой вывод из сценария powershell для той же метки. В прямом выводе из Powershell отсутствует раздел цитаты. Странная часть заключается в том, что я использую те же данные.
3. Попробуйте использовать модуль PsZebra PowerShell.