2013-08-05 3 views
-1

Im Использование Citizen POSPrinter для печати цифровой подписи с моего приложения Android с использованием Bluetooth. Но он печатает только массив byte [] в принтере вместо печати подписи. Я не знаю, где я ошибаюсь. Помоги мне. Заранее спасибо ..Ошибка в POS-методе printBitmap()

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(); 

ответ

1

Вы сохраните файл с расширением .jpg, но с использованием Bitmap.CompressFormat.PNG. Это вряд ли сработает. Кроме того, у вас есть блоки catch, которые фактически не обрабатывают исключение, но пусть программа продолжит работу в ошибочном состоянии. Если вы получаете какие-либо ошибки ввода-вывода, ваша программа будет страдать от загадочных, трудно отлаживаемых ошибок позже - например, той, которую вы пытаетесь найти.

Я настоятельно рекомендую вам правильно разобраться, как правильно обрабатывать исключения, прежде чем пытаться продолжить.

+0

ya sure .. Я узнаю, как с этим справиться. Но я получаю некоторые специальные символы в квитанции. Как это решить. – Raja45

Смежные вопросы