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
Basic example
const { Printer, Style, Align, Drawer, Model, InMemory } = require('escpos-buffer')
const model = new Model('MP-4200 TH')
const connection = new InMemory()
const printer = new Printer(model, connection)
printer.columns = 56
printer.write('Simple Text *** ')
printer.writeln('Bold Text -> complete line text.[]123456', Style.Bold)
printer.writeln('Double height', Style.DoubleHeight | Style.Bold, Align.Center)
printer.writeln('Áçênts R$ 5,00', Style.DoubleWidth | Style.DoubleWidth, Align.Center)
printer.withStyle({
width: 4,
height: 6,
bold: true,
italic: true,
underline: true,
align: Align.Center,
}, () => {
printer.writeln('You can apply multiple styles at once using withStyle()')
printer.writeln('Font sizes 1-8 are available')
})
printer.writeln('Default style is restored afterwards')
printer.feed(6)
printer.buzzer()
printer.cutter()
printer.drawer(Drawer.First)
process.stdout.write(connection.buffer())
Usage in the browser
You can also use the new 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 model = new Model('TM-T20')
const connection = new WebUSB(device)
await connection.open()
const printer = new Printer(model, connection)
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 teststest:debug
- run tests debugging
License
Licensed under the MIT. See the LICENSE file for details.