2017-02-06 2 views
0

Ich arbeite an dieser ionischen App, und ich drucke Quittungen mit einem Bluetooth-Thermodrucker mit dieser Bibliothek.Ionische Bluetooth-Druck POS-Befehl funktioniert nicht

https://github.com/srehanuddin/Cordova-Plugin-Bluetooth-Printer

Ich mag das Papier nach dem Drucken schneiden, weil mein Drucker über diese Funktion verfügt.

BTPrinter.printPOSCommand(function(data){ 
    console.log("Success"); 
    console.log(data) 
},function(err){ 
    console.log("Error"); 
    console.log(err) 
}, "1D") 

Ich habe versucht 0x1d und "0x1d v 1", aber es funktioniert einfach nicht.

Antwort

1

Wie genau haben Sie versucht, diesen Befehl zu senden? Versuchen:

BTPrinter.printPOSCommand(function(data){ 
    console.log("Success"); 
    console.log(data) 
},function(err){ 
    console.log("Error"); 
    console.log(err) 
}, "0x1d") 

Wenn dies nicht Sie arbeiten können versuchen, das Plugin bearbeiten sich die Methode hinzufügen, aber ein bisschen komplizierter das ist.

In der Bluetoothprint.java Datei in pluginfolder/src/android versuchen Sie Folgendes:

dem folgenden Verfahren bekam:

boolean printPOSCommand(CallbackContext callbackContext, byte[] buffer)  throws IOException { 
     try { 
     //mmOutputStream.write(("Inam").getBytes()); 
     //mmOutputStream.write((((char)0x0A) + "10 Rehan").getBytes()); 
     mmOutputStream.write(buffer); 
     //mmOutputStream.write(0x0A); 

     // tell the user data were sent 
     Log.d(LOG_TAG, "Data Sent"); 
     callbackContext.success("Data Sent"); 
     return true; 
    } catch (Exception e) { 
     String errMsg = e.getMessage(); 
     Log.e(LOG_TAG, errMsg); 
     e.printStackTrace(); 
     callbackContext.error(errMsg); 
    } 
    return false; 
} 

Änderung der Methode Attribut Stringpuffer byte [] Puffer und ändern Sie die Zeile

mmOutputStream.write(buffer); 

zu:

auch nur um sicherzustellen, dass der Drucker suppports diese Methode können Sie versuchen, direkt zu setzen:

mmOutputStream.write(0x1d); 

nur um zu testen, ob es funktioniert.

EDIT:

Versuchen Sie, diese byteArray i gefunden:

public static byte[] FEED_PAPER_AND_CUT = {0x1D, 0x56, 66, 0x00}; 
BTPrinter.printPOSCommand(function(data){ 
    console.log("Success"); 
    console.log(data) 
},function(err){ 
    console.log("Error"); 
    console.log(err) 
}, FEED_PAPER_AND_CUT) 
+0

ich es genau so versucht haben und es funktioniert nicht. :( –

+0

Versuchen Sie, die Plugin-Datei selbst zu bearbeiten. Ich habe meine Antwort aktualisiert, so dass Sie es versuchen können. –

+0

Vielen Dank .. Ich werde sicher sein, es zu versuchen, und wo Sie sagten msg.getBytes() 'Sie meine' Puffer "statt" msg "rechts ..? –

Verwandte Themen