【问题标题】:Command for thermal printer in javajava中的热敏打印机命令
【发布时间】:2015-09-22 13:39:46
【问题描述】:

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

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

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

【问题讨论】:

  • 您能告诉我们哪种热敏打印机以及您的操作系统是什么?
  • 4.2.2 我的打印机是蓝牙打印机(热敏打印机)你有没有收到我的问题?

标签: java android printing thermal-printer


【解决方案1】:

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

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" );

【讨论】:

  • 我需要这样的东西,但现在如何将命令写入打印机?
  • 你知道如何打印任何东西吗? “世界你好”?
  • 是的,我使用 outputstream.write(string.getbytes()) 打印文本,但我需要对齐文本中心 ..right 和 ..
  • 好的,非常感谢,这正是我需要的,我会尝试并告诉你发生了什么
  • @Amalo 抱歉,直到现在才想到在 PrintWriter 上添加注释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-02
  • 2013-07-04
  • 1970-01-01
  • 2012-10-05
相关资源
最近更新 更多