Как напечатать тильду (~) на языке программирования 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;
}