1.EPON指令改变打印机字体大小
在用Socket直接向POS打印机写入数据进行打印时,有时候需要设置字体的大小。默认情况下打印机的字体是比较小的,那么,我们可以通过EPSON指令改变打印机字体的大小.
String content = "数据测据测试一下字体的大小\n";
Socket client = new Socket(ip, port);
OutputStream os = client.getOutputStream();
//字体横向放大一倍
os.write(0x1c);
os.write(0x21);
os.write(4);
os.write(content.getBytes("gbk"));
//字体纵向放大一倍
os.write(0x1c);
os.write(0x21);
os.write(8);
os.write(content.getBytes("gbk"));
//字体横向纵向均放大一倍
os.write(0x1c);
os.write(0x21);
os.write(4);
os.write(content.getBytes("gbk"));
os.flush();
2.兼容多种类型POS打印机
由于POS打印机的类型不同,可能支持的EPSON指令也不同。就拿放大字体来说,pos58 打印机和 pos80 打印机指令就不尽相同,那么如何兼容多种打印机呢。
比如说,有的打印机并不是使用 0x1c 作为放大指令,而是使用 0x1b 作为放大指令,怎么办?容易。
/* 横向放大一倍 */
os.write(0x1c);
os.write(0x21);
os.write(4);
os.write(0x1b);
os.write(0x21);
os.write(4);
/* 纵向放大一倍 */
os.write(0x1c);
os.write(0x21);
os.write(8);
os.write(0x1b);
os.write(0x21);
os.write(8);
/* 横向纵向都放大一倍 */
os.write(0x1c);
os.write(0x21);
os.write(12);
os.write(0x1b);
os.write(0x21);
os.write(12);
3.打印符形码
os.write(0x1d);
os.write(0x68);
os.write(120);
os.write(0x1d);
os.write(0x48);
os.write(0x01);
os.write(0x1d);
os.write(0x6B);
os.write(0x02);
os.write("091955826335".getBytes()); //条形码数字
os.write(0x00);
os.write("\n".getBytes());
文章参考:Java 实现 POS 打印机无驱打印