我尝试在热敏打印机中打印条形码,但是打印机打印了不同的编号,我需要打印我定义的条形码编号。
当前行为 我的电话是:“ 12345678” 条形码打印机为:https://snag.gy/VNxQs3.jpg 4950515253545556
预期行为 我的电话是:“ 12345678” 条形码打印机为:https://snag.gy/OVlebj.jpg 12345678
@Override
public void run()
{
try {
if(usbInterface != null && connection != null && mEndPoint != null) {
if(connection.claimInterface(usbInterface, true)) {
printBarcode(connection,usbInterface);
}
else {
System.out.println("ClaimInterface is false, print again.");
}
}
else {
System.out.println("Ocurrio un problema con la conexión...");
}
}
catch(Exception e) {
}
}
private void printBarcode(UsbDeviceConnection connection, UsbInterface interfaceUsb) {
String uuid = "12345678";
byte[] uuidBytes = uuid.getBytes();
byte[] formats = {(byte) 0x1d, (byte) 0x6b, (byte) 0x49, (byte)uuidBytes.length};
byte[] bytes = new byte[formats.length + uuidBytes.length];
System.arraycopy(formats, 0, bytes, 0, formats.length );
System.arraycopy(uuidBytes, 0, bytes, formats.length, uuidBytes.length);
connection.bulkTransfer(mEndPoint, bytes, bytes.length, TIMEOUT_COMMAND_PRINTER); }
在Command POS打印机的文档中,我发现了这一点: 1D 6B m d1…dk 00打印条形码 或1D 6B m n d1…dn 这与我使用的命令相同
在调试中,我可以看到打印机的编号与uuidBytes.getBytes相同,例如 [49,50,51,52,53,54,55,56] [1,2,3,4,5,6,7,8]