2017-01-27 4 views
0

Я пытаюсь отправить ESC-последовательность на принтер квитанции, чтобы вызвать открытие денежного ящика. Я новичок в Javascript, поэтому я просто хочу проверить, что я делаю это правильно. Ничего не происходит с принтером/денежным ящиком, хотя я могу отправить неправильную последовательность кода. Я знаю, что ящик открыт, потому что я могу использовать программное обеспечение для тестирования принтера, чтобы запустить его.Отправка команды Hex на принтер с использованием JavaScript

Javascript.

var windowUrl = 'about:blank'; 
var uniqueName = new Date();  
var windowName = 'CloseTillPrint' + uniqueName.getTime(); 
var PrintWindow = window.open(windowUrl, windowName, 'left=300,top=100,width=200,height=900');  

PrintWindow.document.open('text/plain') 

PrintWindow.document.write(0x1B); 
PrintWindow.document.write(0x70); 
PrintWindow.document.write(0x30); 
PrintWindow.document.write(0x37); 
PrintWindow.document.write(0x79); 
PrintWindow.document.close(); 
PrintWindow.focus(); 
PrintWindow.print(); 
PrintWindow.close();  

Если вы можете просто подтвердить что я не сделал ни одной ошибки с кодом выше, я буду считать, я посылаю неправильную последовательность шестнадцатеричных. Спасибо

ответ

1

Вы печатаете цифры, а не символы. Используйте это вместо своих команд write():

PrintWindow.document.write(String.fromCharCode(0x1B, 0x70, 0x30, 0x37, 0x79)); 
+0

Спасибо за ваш вклад, но я не думаю, что это правильно. когда я делаю то, что вы предлагали, я получаю символы, напечатанные в нижней части квитанции. Также, когда я googled ваша команда «fromCharCode», я проверил эту страницу http://www.w3schools.com/jsref/jsref_fromcharcode.asp, и это подтверждает то, что я сказал. –

+0

Да, у вас есть персонажи. В частности, это: 'p07y' Однако первый символ,' 0x1b', равен 27 в десятичном значении, код ascii для ключа Escape. И пока ваш код напечатал '27', мой отправил фактический символ Escape. Я понятия не имел, будет ли мое предложение работать, но то, что вы сделали, было просто печатными номерами: '271124855121'. –

+0

Можете ли вы указать мне документацию для принтера чека? Может быть, я смогу это понять. –