Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

πŸ–¨οΈ ESC/POS Printer driver for Node.js.

License

Notifications You must be signed in to change notification settings

Jonnykoder/driver

Repository files navigation

@node-escpos



πŸ–¨οΈ ESC/POS Printer driver for Node.js.


Hacktober Badge


demo.mp4

[πŸ“’ RFC] Recently I'm working on a new workflow that prints the receipt. HTML+CSS will customize the content. Theoretically, we can print anything that we want. The workflow is like this:

  1. 🎨 rendering
<div id="label-dom"> Label/Receipt </div>
  1. πŸ“Έ capturing
const screenshort = await capture(document.getElementByID("label-dom"))
  1. 🧾 printing
const printer = await printer.image(screenshort, "s8")
printer.cut().close()

But my full-time job is very busy. So the progress is slow, And any sponsorship will encourage me to work more actively in the open-source community.


Improvements

  • πŸ›  TypeScript.
  • πŸ“¦ pnpm.
  • 🟒 vitest.
  • πŸš€ More stable maintenance.
  • πŸ”΄ Printing by HTML+CSS(WIP).
  • πŸ’‘ More ideas.
  • ...

Packages

Example

import { Printer, Image } from "@node-escpos/core";
// install escpos-usb adapter module manually
import USB from "@node-escpos/usb-adapter";
// Select the adapter based on your printer type
import { join } from "path";
const device = new USB();
device.open(async function(err){
 if(err){
 // handle error
 return
 }
 // encoding is optional
 const options = { encoding: "GB18030" /* default */ }
 let printer = new Printer(device, options);
 // Path to png image
 const filePath = join("/PATH/TO/IMAGE");
 const image = await Image.load(filePath);
 printer
 .font("a")
 .align("ct")
 .style("bu")
 .size(1, 1)
 .text("May the gold fill your pocket")
 .text("ζ­ε–œε‘θ΄’")
 .barcode(112233445566, "EAN13", { width: 50, height: 50 })
 .table(["One", "Two", "Three"])
 .tableCustom(
 [
 { text: "Left", align: "LEFT", width: 0.33, style: "B" },
 { text: "Center", align: "CENTER", width: 0.33 },
 { text: "Right", align: "RIGHT", width: 0.33 },
 ],
 { encoding: "cp857", size: [1, 1] }, // Optional
 )
 
 // inject qrimage to printer
 printer = await printer.qrimage("https://github.com/node-escpos/driver")
 // inject image to printer
 printer = await printer.image(
 image, 
 "s8" // changing with image
 )
 printer
 .cut()
 .close()
});

Sponsors

License

MIT License Β© 2022 Dohooo

About

πŸ–¨οΈ ESC/POS Printer driver for Node.js.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.7%
  • JavaScript 1.3%

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /