2015-10-14 2 views
1

относительно простой задачи превращаются в часы отчаяния, так что здесь идет:RawPrinterHelper не может напечатать штрих-коду с помощью ESC POS команды

У меня есть различные термические принтеры и мы выводим на использование в RawPrinterHelper, что Microsoft отправил. Обычно используют строковый построитель, строит строку и вызывает SendStringToPrinter, и у нас есть напечатанный лист бумаги.

Я пытаюсь напечатать простой штрих-код через команды ESC/POS, которые поддерживаются. Мы используем их для других функций (резка, изменение размеров шрифтов), которые все работают, штрих-код отказывается печатать.

Команда ESC POS: GS k m n d1 d2 ... dn m: тип штрих-кода, например. n: длина штрих-кода - указывает количество байт данных байтов данных d1 штрих-код

Вопрос, который у меня есть, Как отправить длину штрих-кода? Я верю в это, где моя проблема.

фрагмент кода:

StringBuilder print = new StringBuilder(); 
barcode = "1234567890"; 
char commandGS = '\x1D'; 
char linefeed = '\x0A'; 
char esc = '\x1B'; 
char commandFontSize = '\x21'; 
char commandk = '\x6B'; 
char code128 = '\x69'; 
print.Append(commandGS); 
print.Append(commandk); 
print.Append(code128); 
print.Append(barcode.Length); 
print.Append(barcode); 
string printJob = print.ToString(); 
RawPrinterHelper.SendStringToPrinter(printerName, printJob); 
+0

Проверьте свою кодировку. это должно быть ascii –

ответ

0

Вы, вероятно, нужно байт для представления длины штрих-кода, а не текстовое представление длины штрих-кода.

Таким образом, вместо

print.Append(barcode.Length); 

использование

print.Append((char)barcode.Length); 

Я предполагаю, что длина не превышает 255.

Отредактировано добавить: Вы можете изучить байты, которые вы отправляете с чем-то вроде

var bb = Encoding.UTF8.GetBytes(printJob); 
bb.ToList().ForEach(x => Console.Write(x.ToString("X2") + " ")); 

и убедитесь, что они соответствуют тому, что вы собираетесь отправить. Вы также можете сравнить то, что отправлено на то, что делает в вашем текущем коде.

+0

Спасибо, я пробовал, но это не сработало. – user3725237

+0

@ user3725237 Я добавил предложение проверить отправленные байты. –

 Смежные вопросы

  • Нет связанных вопросов^_^