当前位置: 首页 > 知识库问答 >
问题:

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

宗政坚白
2023-03-14

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打印空格或在一行上左/右对齐内容到收据打印机?

谢谢你的帮助。

共有1个答案

严昀
2023-03-14

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

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

当前使用以下简单命令发送字符串:

mmOutputStream.write(data.getBytes());
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是大多数像我这样的打印设备的标准。

 类似资料:
  • 大多数相关的答案和谷歌都包含了关于这个话题的相当古老的贡献。因此,我正在寻找一种方法,使我的Android应用程序打印收据(58毫米宽)通过蓝牙热收据打印机。是否有必要使用带有第三方API的打印机?我想买一台普通的蓝牙打印机,它可以连接到我的设备上,并使用默认的Android打印管理器为收据进行布局。有可能吗?有样本、文档或教程吗?会很感激的。提前致谢

  • 我必须为Android平板电脑开发一个应用程序,要求将文件打印到蓝牙打印机上。 通过蓝牙打印是我应用程序最重要的功能之一。 我尝试了这个项目和这个项目。 它不工作,也不报告任何错误-不要打印。 蓝牙打印机有什么建议吗?

  • 我必须用热敏打印机打印发票收据。我用Zjiang热敏打印机打印收据。他们还提供了手册和演示项目。在演示项目中,他们使用一个库“btsdk.jar”来实现连接和打印。 我已经成功地建立了打印机和android设备之间的连接。但是没有关于文本对齐(中心、左、右)&单元格宽度、高度的指导原则。 我试过了。它只通过改变format2变量来改变文本高度。 打印信息- 发票收据

  • 问题内容: 我必须在热蓝牙打印机上打印一些数据,我正在这样做: 它适用于文本,但不适用于图像。我想我需要获取byte[]图像数据。我尝试通过这种方式获取图像数据: 不幸的是,打印机打印了许多奇怪的字符(大约50厘米的纸张)。我不知道如何打印图像。 我想尝试获取位图的像素,然后将其转换为a byte[]并发送,但是我不知道该怎么做。 谢谢 更新: 经过这么长时间,我正在执行此操作:我有一个名为pri

  • 我正在开发通过蓝牙与打印机连接并打印一些文本的应用程序。我可以通过蓝牙连接打印机,然后从BluetoothSocket获取输出流并写一些文本。但它不会用打印机打印任何东西...我仔细检查过,没有例外。请帮帮我我在代码中做错了什么???我使用佳能MX430打印机进行测试...这是我的代码

  • 我想打印令牌号码从我的android应用程序使用WiFi或蓝牙。我已经实现了PrintManager API,但问题是点击print后,它要求从打印机列表中选择打印机。我的要求是,一旦我选择或配置打印机与应用程序,它不应该要求再次选择打印机。我的问题如下- 使用PrintManager API是否可能? 我准备使用热敏打印机。哪家厂商提供热敏打印机SDK或示例代码?