我想為我的收據實現正確的對齊,目前我可以像當前獲取收據的圖片中那樣進行對齊為了實現正確的對齊,我嘗試了兩種方法,在單行中,我嘗試同時提到左對齊和右對齊,但這不起作用,因為愛普生不允許在同一行上同時對齊然后我嘗試在現金和金額之間添加空格,但有時由于描述較長,數量可能會進一步向右移動,因此它不穩定,所以有人可以告訴我實現正確對齊的正確方法self.receiptText += alignLeft + tndrDesc + "\n";
self.receiptText += alignRight + formatTdrAmt + "\n";但上面的代碼在金額上方的一行中給出了描述,但如果我不使用 \n 它將出現在同一行中而不會右對齊
1 回答

MM們
TA貢獻1886條經驗 獲得超2個贊
最好由應用程序本身編輯打印請求的字符串,而不是打印機的功能。
例如,假設您要打印 32 列。
將padEnd(32, ' ')應用到項目名稱字符串。
獲取價格字符串的?長度。
使用substring (0, (32 - 價格字符串長度))從商品名稱字符串中提取字符串。
將提取的字符串和價格字符串用concat()或+合并,然后合并新的行代碼,創建一行字符串。
如果每個字符都在SBCS(單字節字符集)范圍內,則通過請求打印該字符串可以獲得相同位數的打印結果。
考慮到添加的源。
在這種情況下,alignLeft
和alignRight
不是必需的。
不要突然添加到self.receiptText
,而是使用工作變量。
過程如下。
printlineWork = tndrDesc + '? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '; // 34 columns space character
printlineWork = printlineWork.substring(0, 34);
printlineWork += ('? ? ? ? ' + formatTdrAmt).slice(-8) + '\n'; // 8 columns space character
self.receiptText += printlineWork;
根據需要調整數字位置。
- 1 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消