问题::我使用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;
}
}
图像在下面的图像中,该功能将用于与笔记相关的段落。