Вывести 42 символа в каждой строке строки - PullRequest
0 голосов
/ 02 ноября 2018

Проблема: Я использую 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;
        }
    }

Изображение На изображении ниже функция будет использоваться для абзаца, связанного с примечаниями.

enter image description here

...