我想使用 Zebra 的 EM 220 SDK for Android 打印代码 128 条码。
我尝试使用 PrintBarcode() 方法打印它,如下所示:
BxlService bxl = new BxlService();
bxl.Connect(macAddress);
String data = "123589647525";
bxl.PrintBarcode(data.getBytes(), data.length(), BxlService.BXL_BCS_Code128, 100, 3, 0, BxlService.BXL_BC_TEXT_NONE);
bxl.Disconnect();
但是打印的代码不能被Android扫描应用程序扫描,比如ZXing。
在网上搜索后,我了解到数据必须被格式化(即使我有点惊讶 Zebra SDK 不这样做......)并找到了有助于对数据进行编码的barcode4j 库。但是,即使使用库,也无法扫描打印的条形码。
BxlService bxl = new BxlService();
bxl.Connect(macAdress);
DefaultCode128Encoder dce = new DefaultCode128Encoder();
String data = "123456679857";
int[] i = dce.encode(data);
String barcode = "";
for (int j : i) {
barcode += j;
}
bxl.PrintBarcode(barcode.getBytes(), barcode.length(), BxlService.BXL_BCS_Code128, 100, 3, 0, BxlService.BXL_BC_TEXT_NONE);
bxl.Disconnect();
所以,我的问题很简单:如何使用 Zebra 的 EM 220 SDK for Android 打印代码 128 条码?