java - java中的热敏打印机命令

标签 java android printing thermal-printer

我有一组用于我的热敏打印机的命令:这是一个示例

ASCII ESC a n
Decimal 27 97 n
Hexadecimal 1B 61 n

Description Default is 0
0 ≤ m ≤ 2 or 48 ≤ m ≤ 50
Align left: n=0,48
Align middle: n=1,49
Align right: n=2,50 

我想知道这个命令怎么用??我知道我需要向打印机写入如下命令:

   byte [] cmd = new byte[3];
   cmd[0]=??
   cmd[1]???
    mmOutputStream.write(cmd);//out put stream of soccket connected to
    //printer by bluetooth

更多说明:我想向我的打印机添加命令以使文本显示在中心

最佳答案

这里是十六进制和纯文本的字符代码示例序列,您可以将其发送到打印机,以便文本左对齐、居中和右对齐。转义序列只是嵌入到常规文本中。

1b 40 
1b 61 00 This is left-aligned 0a
1b 61 01 This is centered 0a
1b 61 02 This is right-aligned 0a

初始 ESC @ 重置格式。

我不知道 48、49、50 会产生什么,但类似的实验应该会告诉你。

要编写转义序列,请将其存储在字节数组中并写入,就像常规文本一样:

byte[] center = new byte[]{ 0x1b, 0x61, 0x01 };
outputStream.write( center );
outputStream.write( "This is centered\n".getBytes() );

您可以在 OutputStream 周围“包装”一个 PrintWriter,这使一切变得简单:

// next stmt according to OP
BufferedWriter bw =new OutputStreamWriter( otputStream, "8859_6" );
PrintWriter pw = new PrintWriter( bw, true );
String center = "\u001b\u0061\u0001";
pw.println( center + "This is centered" );

关于java - java中的热敏打印机命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32697430/

相关文章:

android - StringBuilder 追加字符串中断 UTF 8

java - 如何在DB中插入十进制值?

java - 有什么方法可以从 eclipse 访问 java swing 帮助

java - 断言语句是否会吞掉异常?

android - 如何在android中动态地使形状可拖动和调整大小

android - 是否可以有一个透明的 SYSTEM_ALERT_WINDOW 让 TouchEvents 通过?

java - 在 Azure Functions 中重用 MongoDB 连接

javascript - 用 window.print() 打印大表只打印一页

java - 打印成物理形式——需要基本的理解

java - 打印每个节点有 2 个整数的链表