Skip to content

grandchef/escpos-buffer

Repository files navigation

Latest Version Build Status TypeScript version Node.js version MIT

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.