Native printer bindings for Node.js on POSIX and Windows. Fork of @thiagoelg/node-printer with Node 24+ support.
- 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 (
nan2.25+,node-abi4.26+) - macOS arm64 (Apple Silicon) prebuild support
- Modernized GitHub Actions (v4, Node 24)
- Minimum Node version: 20.0.0
npm install @luckykiet/node-printerThe native addon compiles from source if no prebuild is available.
macOS: Xcode Command Line Tools (ships with CUPS)
xcode-select --installLinux (Debian/Ubuntu):
sudo apt-get install libcups2-devWindows: Visual Studio Build Tools with C++ workload
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 |
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.
- Ion Lupascu — original author (tojocky/node-printer)
- Thiago Lugli (@thiagoelg) — Node 12+ support & prebuild CI
- Eko Eryanto (@ekoeryanto) — prebuild integration