2016-10-17 5 views
0

Ich habe eine App, die einen Text mit einem mobilen Drucker Rongta RRP-200 druckt, mit meinem Telefon über Blueetoth verbunden.Android - Drucken von der App auf dem mobilen Drucker

Dazu verwende ich dieses Plugin: https://github.com/srehanuddin/Cordova-Plugin-Bluetooth-Printer

Ich bin in der Lage meines Gerät mit dem Drucker zu verbinden und auch die Druckfunktion von meiner app laufen, was mir wieder eine Nachricht mir, dass die Daten zu informieren gibt wurde geschickt. Der Drucker führt jedoch nichts aus (mit Ausnahme der Lichter, die sich einschalten).

Dies ist die Funktion (vom Plugin), dass mein Text zu drucken versucht:

boolean printText(CallbackContext callbackContext, String msg) throws IOException { 
    try { 
     mmOutputStream.write(msg.getBytes()); 

     // 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; 
} 

Was möglicherweise falsch hier gehen könnte?

Antwort

0

Gefunden, dass das Plugin richtig funktioniert, aber Sie müssen eine vollständige Zeile an den Drucker geben, um es etwas drucken zu lassen. Fügen Sie daher \n am Ende Ihrer Zeichenfolge hinzu. Dies ist die Funktion etwas zu drucken, falls jemand sie braucht (es ist in einer ionischen App Controller):

$scope.print = function(text) { 
    BTPrinter.connect(function(data){ 
     BTPrinter.printText(function(data){ 
      BTPrinter.disconnect(function(){},function(err){ 
       console.log("Error"); 
       console.log(err) 
      }, "Your Printer device") 
     }, function(err){ 
      console.log("Error"); 
      console.log(err) 
     }, text + "\n") 
    }, function(err){ 
      console.log("Error"); 
      console.log(err) 
    }, "Your Printer device"); 
} 
0

Nun, ich habe den gleichen Drucker und schrieb für mich ein kleines Plugin seiner Arbeit einfach klasse. Ich habe in RPP200 und RPP300 getestet.

https://github.com/CXRom/cordova-plugin-rpp

Rpp.Connect("00:0E:0E:0B:7B:93", // <-- MAC Address of the printer 
    function(print) { 
    //At this point we send the action but we need to wait until the connection 
    console.log(`connect ok ${JSON.stringify(print)}`); 
    }, 
    function (err){ 
    console.log(`connect err ${JSON.stringify(err)}`); 
    }); 

//Ask is device is connected 
Rpp.IsConnected(function(conn) { 
    //Send to print 
    Rpp.Print({ 
    marginTop: 10, //Margin before print 
    marginBottom: 10, //Margin after print 
    lineSpacing: 50, //Size of line 
    lines: [ //Lines to print 
     { text: "Title", align: 1, bold: true, underline: true, size: 17 }, //long name properties 
     { text: "Subtitle", a: 1, b: true, u: true, s: 17 }, //short name properties 
     { text: "normal line" }, 
     { text: ":)", h: true } 
    ] 
    }, function(res) { 
    console.log(`print ok ${JSON.stringify(res)}`); 
    }, function(err){ 
    console.log(`print err ${JSON.stringify(err)}`); 
    }); 
}, function(err) { 

}); 
Verwandte Themen