1

我想使用 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 条码?

4

1 回答 1

3

最后,我找到了解决方法。
我使用 ZXing 对我的数据进行编码,使用条形码创建位图,在使用 printImage() 方法打印之前将位图保存为文件。

它有效,但如果有人知道如何使用 printBarcode() 方法,我会很感激他告诉我该怎么做。

于 2013-04-08T14:54:33.503 回答