首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打印空格或左右对齐的内容在一行从Android到收据打印机通过蓝牙?

如何打印空格或左右对齐的内容在一行从Android到收据打印机通过蓝牙?
EN

Stack Overflow用户
提问于 2017-06-17 23:19:52
回答 1查看 2.7K关注 0票数 1

代码语言:javascript
复制
for (i=0;i<items.length;i++){
        String line;
        padding = 50-items[i].length();
        int words = items[i].split("\\s+").length;
        Log.i("info","words: " + words);
        if (words==2) padding += words-1;
        else if (words==3) padding += words-2;
        else if (words==4) padding += words-2;
        //line = String.format("%55s%s", items[i], prices[i]);
        Log.i("info","padding:" + padding);
        //for (int x=0;x<padding;x++) line +="-";
        line = String.format("%1$-" + padding + "s", items[i]);
        tempContent += line + "P" + prices[i] + "\n";
        total +=  Double.parseDouble(prices[i]);
    }
    tempContent += "-----------\n";
    tempContent += String.format("%1$-" + 28 + "s", "Total");
    tempContent += Double.toString(total);
    final String orderContent = tempContent;
// then sending to the print function
print.sendData("Table " + tableNumber + "\n\n" + orderContent);

正如您所看到的,我尝试了各种失败的尝试来解决这个问题。对于实际的蓝牙代码,我使用了这个指南- https://www.androidcode.ninja/android-bluetooth-tutorial/

打印效果很好,只是标题中描述的间距有点问题。

这里又是我的问题-如何打印空格或左/右对齐的内容在一行上从Android到收据打印机通过蓝牙?

这不是一个非常清楚的问题,但为了清楚,我希望能够左对齐项目,然后右对齐价格,或者使用某种空间生成方法,可以为我实现这一点,例如,可以考虑项目字符串的长度,就像我尝试做的那样。

忽略价格的双精度,我计划将其替换为两个Integer值,因为我知道使用浮点数进行定价是不准确的。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-06-17 23:29:46

我听到一些人建议我应该使用等宽字体,这样我就可以像上面那样使用空格对齐。所以我把它作为我的问题的第一个答案,但我希望接下来会有更多和潜在更好的答案。

如果这是正确的解决方案,有人知道在向设备发送数据时设置字体的简单方法吗?

当前正在使用这个简单的命令发送字符串:

代码语言:javascript
复制
mmOutputStream.write(data.getBytes());

我认为这是需要改变的线,但它不接受‘单一空间’作为一个定义:

代码语言:javascript
复制
final String data = new String(encodedBytes, "US-ASCII");

好吧,我是在装傻,编码和字体是不同的东西。问题是,必须有一种方法来“指示”打印机使用哪种字体打印,我认为是有的。只是不确定那是什么方式。

更多的研究。我找到了这个带有ESC/POS命令的页面,所以我假设有可能以某种方式在数据中发送这些命令来获取我需要的内容,例如Tab键命令- https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=72

我的打印机不是这家公司的,我假设ESC/POS是大多数像我这样的打印设备的标准。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44606206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档