Как напечатать тильду (~) на языке программирования Zebra (ZPL)

Я поддерживаю программу, которая выводит ZPL на принтер этикеток. Сегодня последовательность символов ~Ja появилась как часть строки для печати, которая является командой ZPL "отменить все". Излишне говорить, что этикетка не печатается.

Есть ли в ZPL простой способ избежать тильды?

2 ответа

Решение

Ты можешь использовать ~CT или же ^CT чтобы изменить управляющий символ тильды на любой другой символ ASCII, а затем вы можете печатать тильды в обычном режиме. Однако новый управляющий символ не будет печататься. Это, вероятно, будет довольно сложно поддерживать.

Пример изменения префикса управляющей команды на +взяты из стр. 165 руководства по программированию ZPL II:

^XA
^CT+
^XZ
+HS

Если ваша строка представлена ​​как данные поля с ^FD, ^FV, или же ^SN, ты можешь использовать ^FH закодировать тильду в строке с ее шестнадцатеричным значением, 7E.

Пример, взятый из страницы 192 руководства по программированию ZPL II:

^XA
^FO100,100
^AD^FH
^FDTilde _7e used for HEX^FS
^XZ

Выход:

Тильда ~ используется для HEX

~ можно распечатать, заменив на \7E

Кажется, что замена этих трех символов позволит любой клавише на клавиатуре нормально печатать. Я понял это, используя ZebraDesigner, распечатав файл и посмотрев, какие символы они экранируют.

\ to \1F - сделайте это первым, иначе это сломает два ниже

~ до \7E

^ до \5E

Вот код на С#

      private static string escapeChars(string working)
{
working = working.Replace(@"\", @"\1F");
working = working.Replace(@"~", @"\7E");
working = working.Replace(@"^", @"\5E");
return working;
}
Другие вопросы по тегам