node-devterm
Written on a DevTerm.
Package for using the DevTerm with Node.
- Usage Printer
- Get Battery or Temperature
Install
# Required for installing node-canvas on a DevTerm.
# https://github.com/Automattic/node-canvas#compiling
$ sudo apt-get update
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
npm i devterm --save
Usage
Utils
import { getBattery, getTemperature } from 'devterm';
/**
* Get current battery load (0-100)
*/
console.log(await getBattery());
/**
* Gets a Array with temperatues in celsius.
*/
console.log(await getTemperatures());
/**
* Get thermalprinter temperature in celsius.
*/
console.log(await getThermalPrinterTemperature());
/**
* Checks if devterm is A06.
*/
console.log(await isDevTermA06());
Printer
The printer uses the virtual SerialPort /tmp/DEVTERM_PRINTER_IN
and supports the included actions.
https://github.com/clockworkpi/DevTerm/blob/main/Code/thermal_printer/devterm_thermal_printer.c
import { createPrinter } from 'devterm';
// Create Printer instance
const printer = createPrinter()
// write Text
printer.writeLine('Hello World');
// write a image from filepath, url, buffer
await printer.writeImage('<filePath|Url|Blob|Buffer>');
// write a qrcode
await printer.writeQRCode('Hello World');
// write a barcode
await printer.writeBarcode('Hello World');
Printer Functions (Package)
printer.write(value)
-
value
<Buffer>
|<String>
-
Returns
<Promise>
Print Buffer
or String
.
printer.writeLine(value)
-
value
<String>
-
Returns
<Promise>
Print a multiline text. For line breaks use \n
.
printer.writeCanvas(canvas, [options])
-
canvas
<Canvas>
-
options
<Object>
Options -
Returns
<Promise>
Print canvas from package node-canvas
.
printer.writeQRCode(text, [qrCodeOptions, options])
-
text
<String>
-
qrCodeOptions
<Object>
QRCode Options -
options
<Object>
Options
Print a QRCode.
Uses node-qrcode
for generating.
printer.writeBarcode(text, [barcodeOptions, options])
-
text
<String>
-
barcodeOptions
<Object>
Barcode Options -
options
<Object>
Options
Print a Barcode.
Uses jsbarcode
for generating.
Printer Functions (SerialPort)
printer.reset()
Reset printer options.
printer.setAlign(value)
-
value
<Number>
-
Return
<Promise>
Sets print alignment.
Align | value |
---|---|
Left | 0 |
Center | 1 |
Right | 2 |
printer.setMargin(value)
-
value
<Number>
-
Return
<Promise>
Sets Margin by percentage in float
number.
Example: 25%
=> 0.25
printer.setFont(value)
-
value
<Number>
-
Return
<Promise>
Sets print font.
Align | value |
---|---|
8x16 A | 0 |
8x16 B | 4 |
5x7 | 1 |
6x12 | 2 |
7x14 | 3 |
printer.setDensity(value)
-
value
<Number>
-
Return
<Promise>
Sets print density from 0 to 15 for Dark.
printer.setWordGap(value)
-
value
<Number>
-
Return
<Promise>
Sets word gap.
printer.setUnderLine(value)
-
value
<Number>
-
Return
<Promise>
Benefit still unknown.
printer.setLineSpace(value)
-
value
<Number>
-
Return
<Promise>
Sets print line space.
printer.writeImage(url, [options])
-
url
<String>
|<Buffer>
-
options
<Object>
Options -
Return
<Promise>
Print a image from path, url or Buffer
.
printer.feedPitchByPixel(value)
-
value
<Number>
-
Return
<Promise>
Feed pitch by pixel.
printer.feedPitchByFont(value)
-
value
<Number>
-
Return
<Promise>
Feed pitch by current font size.
printer.addCutLine()
-
Return
<Promise>
Add cut line.
printer.testPage()
-
Return
<Promise>
Print internal test page
Utils
printer.getBattery()
- Return
Gets the battery status
printer.getTemperatures()
- Return
Gets temperatures from DevTerm.
Currently only the DevTerm A06 is supported.
printer.getThermalPrinterTemperature()
- Return
Gets temperature from thermal printer.
printer.isDevTermA06()
- Return
Gets if it is a DevTerm A06.
Canvas Options
Name | Type | Description | Default |
---|---|---|---|
width | Number |
Sets image width. Max width is 384
|
null |
rotate | Boolean |
When set, image is rotated 90 degrees. | false |
flipX | Boolean |
When set, image is flipped horizontally. | false |
flipY | Boolean |
When set, image is flipped vertically. | false |
grayscale | Boolean |
When set, the image is processed with the Floyd Steinberg algorithm. |
false |