#powershell #printing #zpl
#powershell #печать #zpl
Вопрос:
Я пытаюсь создать сценарий powershell, который упростит оператору машины удаление отпечатков с настроенного принтера Zebra.
Контекст: этот принтер не работает как обычный принтер Zebra, он будет печатать только после получения сигнала печати от оборудования, с которым работает оператор. Для обычной маркировки это не проблема.
Проблема, которую я пытаюсь решить, возникает при печати заданий, где каждая метка уникальна, и у вас есть сотни отпечатков в задании. Это приведет к тому, что задание на печать будет частично находиться в очереди печати Win, ожидая отправки на принтер.
И если вам нужно прервать это задание, вам нужно вручную очистить очередь, а затем удалить оставшиеся отпечатки с принтера Zebra.
Я пытаюсь сделать это как можно проще и быстрее для оператора.
PS C:UsersBallsprett > Получить-Задание на печать -Имя принтера Zebra1 Идентификатор Имя_компьютера Имя_принтера имя_документа Отправлено время JobStatus -- ------------ ----------- ------------ ------------- --------- 10 Zebra1 Thelabel.lbl 15.12.2020 3:42:4... Ошибка, печать...
Я хотел бы создать интерактивный скрипт, который просто двойным щелчком мыши даст мне идентификатор на этом принтере, чтобы я мог удалить / закрыть задание на печать.
Удалить-задание печати -Имя принтера Zebra1 -ID 10
Я бы хотел, чтобы скрипт нашел идентификатор на этом принтере и либо поместил его в переменную, либо напрямую удалил задание. Я зашел так далеко, но если я попробую переменную, она будет выглядеть так:
PS C:UsersBallsprett > Получить-Переменный PriID Имя Значение ---- ----- ПриИД MSFT_PrintJob (Id = 7, имя принтера = "Zebra1")
Я не могу понять, как это использовать.
—
Затем, после удаления задания, я хотел бы отправить команду ~JA, чтобы удалить отпечатки с принтера. Это только эти три символа, но мне может понадобиться добавить к нему CR, пока не дошел до этого.
Я знаю, что это будет включать использование
Out-Printer -Name "Zebra1"
Я не знаю, как отправить только символы / текстовый поток на принтер. Вся информация и примеры, которые я вижу, предназначены для отправки файлов, а не только чистого текста ASCII.
Любая помощь будет оценена.
Комментарии:
1. Возможно, вы можете назначить ему переменную, как вы описали вот так?
$x = Get-PrintJob -PrinterName Zebra1
затем вызовите$x.id
, работает ли это?2. Это сработало: $ x = Get-PrintJob -Имя принтера Zebra1, затем Удалить-PrintJob $ x. Как только вы сказали, что я понял, что переменная имеет правильный формат, чтобы заменить всю остальную часть командлета Remove-PrintJob. Спасибо. Теперь мне просто нужно выяснить, как отправить ~JA на принтер.
3. Я чувствую, что для отправки текста ASCII на принтер вам нужно будет установить драйвер, поддерживающий прямой переход. Затем отправьте символы.
4. AdminOfThings вы правы. Драйвер принтера ZDesigner имеет возможность сделать это. Это, конечно, не работает! Но я добавил драйвер для gen text и подключил его к тому же USB-порту. Да, это создает беспорядок. Иногда это работает, иногда он начинает генерировать метку. До сих пор я понял, что мне нужно будет сбросить диспетчер очереди перед отправкой команды. Обнаружил это, потому что утилиты настройки Zebra не могут обмениваться данными через этот USB-порт после удаления печати. Приключение продолжается.. О, я упоминал, что скрипт должен запускаться от имени администратора для перезапуска диспетчера очереди?? 🙂
Ответ №1:
Помещаю мой комментарий в ответ, чтобы его можно было принять и закрыть $x = Get-PrintJob -PrinterName Zebra1
, затем Remove-PrintJob $x