GitHub - luckykiet/node-printer: Native node.js printer · GitHub
Skip to content

luckykiet/node-printer

 
 

Repository files navigation

@luckykiet/node-printer

Native printer bindings for Node.js on POSIX and Windows. Fork of @thiagoelg/node-printer with Node 24+ support.

npm version

What's different from the original?

  • Node 24/25 support — C++20 build, updated V8 compatibility
  • VS2026 compatibility — fixed C++ two-phase name lookup for MSVC 18+
  • No Python dependency — build uses Node.js instead of Python for source file discovery
  • Updated native dependencies (nan 2.25+, node-abi 4.26+)
  • macOS arm64 (Apple Silicon) prebuild support
  • Modernized GitHub Actions (v4, Node 24)
  • Minimum Node version: 20.0.0

Install

npm install @luckykiet/node-printer

Build prerequisites

The native addon compiles from source if no prebuild is available.

macOS: Xcode Command Line Tools (ships with CUPS)

xcode-select --install

Linux (Debian/Ubuntu):

sudo apt-get install libcups2-dev

Windows: Visual Studio Build Tools with C++ workload

API

const printer = require('@luckykiet/node-printer');
Method Description
getPrinters() List all installed printers with jobs and statuses
getPrinter(name) Get specific printer info
getDefaultPrinterName() Get default printer name
getPrinterDriverOptions(name) Get driver options (POSIX only)
getSelectedPaperSize(name) Get default paper size (POSIX only)
printDirect(options) Send raw data to printer
printFile(options) Print a file (POSIX only)
getSupportedPrintFormats() List supported formats (RAW, TEXT, PDF, etc.)
getJob(printerName, jobId) Get job info
setJob(printerName, jobId, command) Send command to job (e.g. CANCEL)
getSupportedJobCommands() List supported job commands

Examples

const printer = require('@luckykiet/node-printer');

// List printers
console.log(printer.getPrinters());

// Print raw text
printer.printDirect({
  data: 'Hello from Node.js!',
  printer: printer.getDefaultPrinterName(),
  type: 'TEXT',
  success: (jobId) => console.log('Job ID:', jobId),
  error: (err) => console.error(err),
});

See the examples directory for more usage patterns.

Credits

License

MIT

About

Native node.js printer

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

  • C++ 74.7%
  • JavaScript 14.6%
  • PowerShell 4.9%
  • Shell 3.0%
  • Python 2.8%