Проблема: Я использую qzTray для печати квитанции, раньше я использовал формат html, но качество печати было плохим. поэтому я перешел на JavaScript и написал набор функций для печати квитанции, я использую эту функцию для печати 42 символов в каждой строке, у меня есть строка из 105 символов, строка будет напечатана в 3 строки. Я написал некоторый код, но он не работает полностью, кто-нибудь может подсказать, как это сделать?
первая строка печатается нормально, но со второй строки и далее, кажется, что substr не работает, я не знаю почему.
Спасибо заранее.
window.const_alignLeft = '\x1B\x61\x30';
window.const_newLine = '\x0A';
function getItemRowFull(itemTitle, itemPrice = null) {
var totalColsPerPage = 42;
var leftCols = 35;
var marginSpace = totalColsPerPage === 48 ? '' : ' ';
if(itemTitle.length > leftCols) {
leftCols = (!itemPrice) ? totalColsPerPage : leftCols;
let itemTitleLength = itemTitle.length;
let receipt = '';
let startFrom = 0;
let remainingCharacters = itemTitle.length;
while (startFrom < itemTitleLength) {
receipt += const_alignLeft + marginSpace + itemTitle.substr(startFrom, startFrom + leftCols);
receipt += const_newLine;
remainingCharacters = (remainingCharacters + itemTitleLength) - (itemTitleLength + leftCols);
startFrom = (startFrom + leftCols);
}
return receipt;
}
}
Изображение На изображении ниже функция будет использоваться для абзаца, связанного с примечаниями.