-1

我使用 Citizen POSPrinter 使用蓝牙从我的 android 应用程序打印数字签名。但它只打印打印机中的 byte[] 数组,而不是打印签名。我不知道我错在哪里。帮我。提前致谢..

    ESCPOSPrinter posPtr = new ESCPOSPrinter();
    String root = Environment.getExternalStorageDirectory().toString();

    String fname = "Sign.jpg";
    file = new File (root, fname);
    path = file.getAbsolutePath();

    if (file.exists())
        file.delete();
    try {
        out = new FileOutputStream(file);
        signature.compress(Bitmap.CompressFormat.PNG, 90, out);
        out.flush();
        out.close();

    } catch (Exception e) {
        e.printStackTrace();
    }

    try {

        posPtr.printBitmap("//sdcard//Sign.jpg", CMPPrint.CMP_ALIGNMENT_RIGHT);

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
4

1 回答 1

1

您正在使用.jpg扩展名保存文件,但使用Bitmap.CompressFormat.PNG. 这似乎不太可能奏效。此外,您还有实际不处理异常的 catch 块,而是让程序在错误状态下继续运行。如果您遇到任何 I/O 错误,您的程序将在以后遇到神秘的、难以调试的错误——就像您要查找的错误一样。

我强烈建议您在尝试继续之前弄清楚如何正确处理异常。

于 2013-08-06T10:27:09.057 回答