>source

Zebra (zsdk_android_api.jar)를 위해 Android SDK를 사용하여 이미지를 인쇄하기 위해 Android 앱이 있습니다. 프린터는 ZQ320 모델이며 ZPL_HYBRID 모드입니다. 일부 장치에서 동일한 프린터가 동일한 앱이 작동하지 않습니다. 블루투스 표시등이 깜박이지 만 깜박임을 멈추고 깜박임을 멈추지 않고 다른 장치에서는 okey를 인쇄하지 않습니다. 우리는 예외가 발생하는지 알아내는 것을 시도하고 있지만 우리가 알고있는 한 모든 code에서 예외가 발생하지 않습니다.

public static void printBitmapZebra(ZebraPrinter printer, Bitmap path) throws ConnectionException {
        String setSizeCommand= "^XA^LL" + path.getHeight() + "^XZ";
        printer.sendCommand(setSizeCommand);
        ZebraImageAndroid oZebraImage= new ZebraImageAndroid(path);
        printer.printImage(
                oZebraImage, 0, 0,
                path.getWidth(),
                path.getHeight(), false);
    }

및이 code는 다음에서 호출됩니다.

public void onClickPrint(View view) {
    new Thread(() -> {
        Connection connection= null;
        try {
            String mac= macAddress.getText().toString();
            if (isNullOrEmpty(mac)) {
                runOnUiThread(() -> UIHelper.showCustomToast(
                        this,
                        "Debe de especificar una dirección para la impresora."));
                return;
            }
            showModalLoadingDialog("Impresión", "Generando imagen");
            Bitmap bm= BitmapUtils.getBitmapFromWebview(oWebViewBmpGenerator);
            BitmapUtils.saveBitmapToTempFolder(this,bm);
            bm= BitmapUtils.toGrayScale(bm);
            bm= BitmapUtils.getScaledPrinterBitmap(bm, 203); //203 -> ZEBRA ZQ320
            if (bm== null) {
                throw new Exception("No se generó una imagen para imprimir.");
            }
            updateLoadingDialog( "Conectando con la impresora");
            SettingsHelper.saveBluetoothAddress(PrintZebraActivity.this, mac);
            connection= new BluetoothConnection(macAddress.getText().toString());
            connection.open();
            ZebraPrintUtils.setStatus(connection);
            ZebraPrinter printer= ZebraPrinterFactory.getInstance(connection);
            updateLoadingDialog("Enviando imagen");
            ZebraPrintUtils.printBitmapZebra(printer, bm);
            connection.close();
            connection= null;
        } catch (Exception e) {
            cclsLog.log(this, e);
            UIHelper.showWarning(this, e);
        } finally {
            dismissModalProgressDialog();
            if (connection != null) {
                try {
                    connection.close();
                } catch (Exception ignored) {
                }
            }
        }
    }).start();
}

미리 감사드립니다.

  • 답변 # 1

    프린터 (ZQ320) 펌웨어를 최신 버전으로 업데이트 한 후 V81.20.22z.zpl () 문제가 해결되었습니다.

  • 이전 java : 메소드의 enum 매개 변수를 갖는 HashMap을 반환하는 방법은 무엇입니까?
  • 다음 python : 단어가 반복되는 횟수를 계산하는 함수를 정의하는 방법