For Star Micronics bluetooth/LAN printers. It works only with Android.
How to use :
import { StarIO, Builder } from 'nativescript-starIO';
// Create a new builder
const stario = new StarIO();
stario.portDiscovery('All')
.then(list => {
// all discovery devices
})
.catch(error => {
// error
})
Port types are: 'All', 'Bluetooth', 'USB', 'LAN'
const stario = new StarIO();
stario.checkStatus(portName)
.then(status => {
// status result
})
.catch(error => {
// error
})
You need use the Builder
to create the commands pipeline.
To print a receipt you need create a builder with this code:
const builder = new 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.font
:string
| font family:monospace
,sans serife
,serife
ordefault
.weight
:string
| weight of text:bold
,bold italic
,italic
ornormal
.align
:string
| align of text:center
,opposite
ornormal
.
Example with default configuration of style.
builder.text("Hello world", {
size: 15,
font: 'default',
weight: 'normal',
align: 'normal',
});
Full example with 3 lines:
const builder = new Builder({ width: 384 })
.text("Hello world", {})
.text("This is a example", {})
.text("Say, good bye!", {})
.cutPaper();
builder.print(portName)
.then(sucess => {
// sucess
})
.catch(error => {
// error
})
Example with shared style:
var myStyle = {
size: 23,
weight: 'bold',
align: 'center'
};
const builder = new Builder({ width: 384 })
.text("Title in center", myStyle)
.text("I'm center too", myStyle)
.text("all is center", myStyle)
.cutPaper();
builder.print(portName)
.then(sucess => {
// sucess
})
.catch(error => {
// error
})
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.align
:string
| align of image:center
,left
orright
.
Cut the paper.
builder.cutPaper();
I'm not sure if this work with TSP100.
builder.openCashDrawer();
Finally for print, just call print
command. This function will return a promise.
builder.print(portName);