【问题标题】:EPSON print receipt alignment issueEPSON打印收据对齐问题
【发布时间】:2020-07-12 07:44:10
【问题描述】:

我想为我的收据实现正确对齐,目前我可以像图片中那样对齐currently getting the receipt like this

为了实现正确对齐,我尝试了两种方法,在单行中,我尝试同时提及左对齐和右对齐,但这不起作用,因为 epson 不允许在同一行上对齐 然后我尝试在现金和金额之间添加空格,但有时由于描述较长,金额可能会向右更远,所以它不稳定,所以有人可以告诉我实现正确对齐的正确方法

self.receiptText += alignLeft + tndrDesc + "\n";
self.receiptText += alignRight + formatTdrAmt + "\n";

但上面的代码在金额上方的一行中给出了描述,但如果我不使用 \n 它将出现在同一行而不是右对齐

【问题讨论】:

    标签: javascript html printers thermal-printer epson


    【解决方案1】:

    最好是应用程序自己编辑打印请求的字符串,而不是打印机的功能。

    例如,假设您要打印 32 列。

    如果每个字符都在 SBCS(Single Byte Character Set) 范围内,则可以通过请求打印该字符串来获得相同位数的打印结果。


    考虑添加的来源。

    在这种情况下,alignLeftalignRight 不是必需的。

    不要突然添加到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;
    

    根据需要调整数字位置。

    【讨论】:

    • 看起来像。在这种情况下,您可以简单地将其与 32 位空白字符串组合。由于在后面的处理中被substring()剪掉了,所以就算长了也没问题。
    • 我无法理解解决方案,请您详细说明。目前我的问题是我无法在同一行中对齐投标类型和金额,我尝试给出空格,因为我有多个项目描述(有些长度更大)所以其相应的金额不在同一行下,我想要的只是将右侧金额限制在一个固定位置,比如我在收据纸上有 42 列,所以我可以在纸张的第 35 位之后开始打印金额吗?
    • 换句话说,对于我想在第 35 列之后开始打印的所有价格金额(让它固定)。这个可以吗?
    • 我也不知道你的具体情况,所以我在大纲中写一个答案。如果您想详细查看流程,请将您的打印流程的程序源、打印时的变量内容等添加到您的问题文章中。
    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 2015-08-30
    • 2021-08-14
    • 2017-08-08
    • 2017-12-01
    • 2014-11-25
    • 2016-10-21
    • 2015-01-04
    相关资源
    最近更新 更多