Cordova plugin for ePOS-Print. Only works with Android.
How to use :
- Install the plugin:
cordova plugin add https://github.com/jhonylucas74/epson-cordova
If this not work. Try install plugin with --nofetch flag.
Actualy, only LAN are suported.
window.plugins.EPOSPrinter.portDiscovery(function(error, printerList){
if (error) {
console.error(error);
} else {
console.log(printerList[0].name);
console.log(printerList[0].macAddress);
}
});
The format of port is 192.168.192.168.
window.plugins.EPOSPrinter.checkStatus(port, function(error, result){
if (error) {
console.error(error);
} else {
console.log(result.offline ? "printer is offline : "printer is online);
}
});
to print you need use Builder.
To print a receipt you need create a builder with this code:
var builder = window.plugins.starPrinter.Builder({ width: 384 });
The width represent the paper width. With the instance of builder is possible now add commands.
builder.text("Hello world", {});
In example a text command was added in pipeline. the second argument is a object that represent a style of text. Below follow all the possible values.
size:int| size of text, default is 4.font:string| font:FONT_A,FONT_B,FONT_C,FONT_D,FONT_E.weight:string| weight of text:boldornormal.align:string| align of text:center,rightorleft.
Example with default configuration of style.
builder.text("Hello world", {
size: 4,
font: 'FONT_A',
weight: 'normal',
align: 'left',
});
Full example with 3 lines:
window.plugins.starPrinter.Builder({ width: 384 })
.text("Hello world", {})
.text("This is a example", {})
.text("Say, good bye!", {})
.cutPaper()
.print(portName, function(err, result){
if (err) return console.log(err);
// code here...
});
Example with shared style:
var myStyle = {
size: 8,
weight: 'bold',
align: 'center'
};
window.plugins.starPrinter.Builder({ width: 384 })
.text("Title in center", myStyle)
.text("I'm center too", myStyle)
.text("all is center", myStyle)
.cutPaper()
.print(portName, function(err, result){
if (err) return console.log(err);
// code here...
});
Add a image to builder. The first input must be a base64 encoded image.
builder.image('data:image/jpg;base64, ....');
The second param is optional, but you can change the width anda the align when pass a style.
builder.image('data:image/jpg;base64, ....', {
align: 'center'
});
Style image options:
width:int| size of image.height:int| size of image.x:int| x of image.y:int| y of image.
Cut the paper.
builder.cutPaper();
builder.openCashDrawer();
Finally for print, just call print command.
builder.print(portName, function(error, result){
if (error) {
console.error(error);
} else {
console.log("printReceipt finished");
}
});