从字符串的每一行打印42个字符

时间:2018-11-02 20:23:16

标签: javascript qz-tray

问题::我使用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

0 个答案:

没有答案