Native bind printers on POSIX and Windows OS from Node.js, iojs and node-webkit.
If you have a problem, ask question to or find/create a new Github issue
I was involved in a project where I need to print from Node.JS. This is the reason why I created this project and I want to share my code with others.
getPrinters()to enumerate all installed printers with current jobs and statuses;
getPrinter(printerName)to get a specific/default printer info with current jobs and statuses;
getPrinterDriverOptions(printerName)(POSIX only) to get a specific/default printer driver options such as supported paper size and other info
getSelectedPaperSize(printerName)(POSIX only) to get a specific/default printer default paper size from its driver options
getDefaultPrinterName()return the default printer name;
printDirect(options)to send a job to a specific/default printer, now supports CUPS options passed in the form of a JS object (see
cancelJob.jsexample). To print a PDF from windows it is possible by using node-pdfium module to convert a PDF format into EMF and after to send to printer as EMF;
printFile(options)(POSIX only) to print a file;
getSupportedPrintFormats()to get all possible print formats for printDirect method which depends on OS.
TEXTare supported from all OS-es;
getJob(printerName, jobId)to get a specific job info including job status;
setJob(printerName, jobId, command)to send a command to a job (e.g.
'CANCEL'to cancel the job);
getSupportedJobCommands()to get supported job commands for setJob() depends on OS.
'CANCEL'command is supported from all OS-es.
Make sure you have Python 2.x installed on your system. Windows users will also require Visual Studio (2013 Express is a good fit)
npm install -g node-gyp npm install printer --msvs_version=2013
or direct from git:
npm install git+https://github.com/tojocky/node-printer.git
npm install -g nw-gypcd node_modules/printernw-gyp rebuild
For specific distribution
--dist-url node-gyp parameter should be used. Example for electron:
node-gyp rebuild --target=0.37.4 --arch=x64 --dist-url=
Ubuntu User :
You need to install libcups2-dev package
sudo apt-get install libcups2-dev
Feel free to download, test and propose new futures