Zebra EM 220,使用 Android 打印 Code 128 条码
Posted
技术标签:
【中文标题】Zebra EM 220,使用 Android 打印 Code 128 条码【英文标题】:Zebra EM 220, Print Code 128 barcode using Android 【发布时间】:2013-03-26 17:09:11 【问题描述】:我想使用 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();
但打印的代码无法被安卓扫描应用程序扫描,例如 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 条码?
【问题讨论】:
【参考方案1】:最后,我找到了解决方法。 我使用 ZXing 对我的数据进行编码,使用条形码创建位图,在使用 printImage() 方法打印之前将位图保存为文件。
它有效,但如果有人知道如何使用 printBarcode() 方法,我会很感激他告诉我怎么做。
【讨论】:
以上是关于Zebra EM 220,使用 Android 打印 Code 128 条码的主要内容,如果未能解决你的问题,请参考以下文章
Zebra 设备-TC75x-Android 8.1-条形码扫描问题
基于 EM 的媒体查询不适用于 Android 浏览器 v4.3