ESC/POS Printer Library
Library to generate buffer for thermal printers.
Install
Run command bellow on your project folder
yarn add escpos-buffer
or
npm install escpos-buffer
Setup
Node
const { Printer, InMemory } = require('escpos-buffer');
const connection = new InMemory();
const printer = await Printer.CONNECT('MP-4200 TH', connection);
Browser
Use the WebUSB protocol in Chrome to connect directly to the printer.
import { Printer, Model, WebUSB } from 'escpos-buffer';
const device = await navigator.usb.requestDevice({
filters: [
{
vendorId: VENDOR_ID,
},
],
});
const connection = new WebUSB(device);
const printer = await Printer.CONNECT('TM-T20', connection);
Usage
// Following setup above...
await printer.setColumns(56)
await printer.write('Simple Text *** ')
await printer.writeln('Bold Text -> complete line text.[]123456', Style.Bold)
await printer.writeln('Double height', Style.DoubleHeight | Style.Bold, Align.Center)
await printer.writeln('Áçênts R$ 5,00', Style.DoubleWidth | Style.DoubleWidth, Align.Center)
await printer.withStyle({
width: 4,
height: 6,
bold: true,
italic: true,
underline: true,
align: Align.Center,
}, async () => {
await printer.writeln('You can apply multiple styles at once using withStyle()')
await printer.writeln('Font sizes 1-8 are available')
})
await printer.writeln('Default style is restored afterwards')
await printer.feed(6)
await printer.buzzer()
await printer.cutter()
await printer.drawer(Drawer.First)
// For buffered connection (output to stdout)
process.stdout.write(connection.buffer())
// to print, run command bellow on terminal
// For Unix
//> node examples/basic.js | lp -d MyCupsPrinterName
// For Windows
//> node examples\basic.js > output.bin
//> print /d:\\%COMPUTERNAME%\PRINTER_NAME output.bin
Available scripts
-
clean
- remove coverage data, Jest cache and transpiled files, -
build
- transpile TypeScript to ES6, -
build:watch
- interactive watch mode to automatically transpile source files, -
lint
- lint source files and tests, -
style:fix
- fix prettier style problems, -
style:check
- check for prettier style, -
test
- run tests, -
test:watch
- interactive watch mode to automatically re-run tests -
test:debug
- run tests debugging
License
Licensed under the MIT. See the LICENSE file for details.