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 などの Android スキャン アプリケーションではスキャンできません。
Web で検索した後、データをフォーマットする必要があることを理解し (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 バーコードを印刷する方法は?