前段时间做了一个无线打印的Android App,打印机用的是Zebra的 QL 220(移动打印机)和GX 430t(桌面打印机)。这里给大家分享一下具体实现方法。
调用打印机用的是Zebra提供的ZSDK_ANDROID_API。此jar需要大家自己去网上下载,我忘记下载地址了,如果需要可以给我留言,我单独发给你们。
在实现打印前需要先配置好环境:准备好可用的Zebra打印机(可支持CPCL或ZPL打印指令),连上局域网,Android设备与打印机需在同一个局域网内。蓝牙打印与Wifi打印类似,
下面是具体实现:
1.创建连接
connection = new TcpConnection(PRINT_IP, PRINT_PORT);
PRINT_IP:打印机对应的IP
PRINT_PORT:打印机端口,可以在打印机上面查看。
2.打开连接并且创建打印机实例(ZebraPrinterFactory是ZSDK_ANDROID_API.jar提供)。
connection.open();
ZebraPrinter printer = ZebraPrinterFactory.getInstance(connection);
3.获取打印机控制语言(一般为CPCL或ZPL)
PrinterLanguage pl = printer.getPrinterControlLanguage();
针对不同的语言编写对应的打印指令,下面简单介绍一下语法:
- ZPL(Zebra桌面打印机一般都支持)
开始指令:
/**
* ^XA 指令块的开始
* ^MD 设置色带颜色的深度,取值范围从-30到30,上面的示意指令将颜色调到了最深.
* ^LH 设置条码纸的边距的.
* ^CF 改变字符字体默认字体
*/
private static String lableStart_ZPL(int md,int x,int y){
String strLable="^XA"+"^CF0,15,7"+ "^MD"+String.valueOf(md)+ "^LH"+String.valueOf(x)+","+String.valueOf(y);
return strLable;
}
打印文字:
/**
*
* @param x 起始水平坐标
* @param y 起始垂直坐标
* @param strValue 内容
* @return
*/